Windows dbghelp何时从嵌入在可执行文件中的路径加载符号

Windows dbghelp何时从嵌入在可执行文件中的路径加载符号,windows,debugging,debug-symbols,Windows,Debugging,Debug Symbols,我有一个应用程序,它使用SymInitialize()加载调试符号 根据我在符号上找到的信息,按以下顺序进行搜索: 1. Dir containing the module symbols are being loaded for; 2. _NT_SYMBOL_PATH environment variable; 3. _NT_ALTERNATE_SYMBOL_PATH environment variable 4. pdb file path embedded in binary file

我有一个应用程序,它使用SymInitialize()加载调试符号

根据我在符号上找到的信息,按以下顺序进行搜索:

1. Dir containing the module symbols are being loaded for;
2. _NT_SYMBOL_PATH environment variable;
3. _NT_ALTERNATE_SYMBOL_PATH environment variable
4. pdb file path embedded in binary file
我在某些Windows 7虚拟机上有此符号加载行为,但在某些虚拟机上没有尝试从第4点加载符号

我使用进程监视器获取进程试图访问的路径列表


dbghelp API从嵌入在可执行文件中的路径加载符号,是否有一个选项或可能必须满足的先决条件?

通过实验,我得出结论,这是通过以下路径搜索符号的顺序:

1. Dir containing the module symbols are being loaded for;
2. _NT_SYMBOL_PATH environment variable;
3. Sub-folders from 1 and 2:
    - dll and symbols/dll if symbols are searched for .dll file
    - exe and symbols/exe if symbols are searched for .exe file
如果安装了调试器(VS2010或WinDbg),则还将搜索嵌入dll/exe中的路径

_NT\u备用\u符号\u路径接缝它根本不使用,但它可以是特定于dbghelper版本的

有人能分享他们在这个话题上的经验吗?这方面的内容还有很多,但是没有关于这个主题的文章