Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does Very Sleepy find symbol files?

Has anyone figured out how the Very Sleepy profiler finds PDB files? It seems like it doesn't use the _NT_SYMBOL_PATH env variable.. I've had success by putting PDBs in the same directory as the executable and DLLs, but I'm trying to profile a program that uses a TON of DLLs and it's getting really painful. Isn't there some way to have it point to a symbol server?

like image 842
pepsi Avatar asked May 18 '11 15:05

pepsi


1 Answers

The path to the original .pdb file is getting included in the DLL. Just don't move them.

The source code for Very Sleepy is readily available. It uses the DbgHelp API, symbolinfo.cpp source code file. The call to SymInitialize() allows a tool to specify the the search path for symbols, 2nd argument. It passes NULL, that's where the buck stops.

like image 144
Hans Passant Avatar answered Nov 15 '22 06:11

Hans Passant