SplitSymbols

【勇芳软件工作室】汉化HomePreviousNext

SplitSymbols功能从图像中删除符号。

BOOL SplitSymbols(

IN LPSTR【ImageName】, 
IN LPSTR【SymbolsPath】, 
OUT LPSTR【SymbolFilePath】, 
IN DWORD【旗】 
); 

参数

【ImageName】

要分割符号的图像的名称。

【SymbolsPath】

用于存储符号的子目录。(这是可选的。)

【SymbolFilePath】

生成的符号文件的名称(.DBG扩展名)。

【旗】

零或以下标志值的组合:

含义
SPLITSYM_EXTRACT_ALL通常,具有符号拆分的图像仍将包含名称为.DBG文件的MISC调试目录。这样,调试器就会知道在哪里找到符号。使用此标志会删除此链接,最终结果类似于在链接器上使用-debug:none开关。
SPLITSYM_REMOVE_PRIVATE在生成.DBG文件时,会剥离私有的CodeView(CV)符号信息。它通过调用RemovePrivateCvSymbolic函数来实现。

返回值

如果函数成功,返回值为TRUE。

如果函数失败,则返回值为FALSE。要检索扩展错误信息,请调用GetLastError.

备注

当从图像中删除符号时,应使用SplitSymbols函数。它将创建所有Microsoft Win32调试器可以理解的.DBG文件。该格式在WINNT.H中定义,并由图像头(IMAGE_SEPARATE_DEBUG_HEADER)组成,后面是段标题数组,RISC上的异常(X86),FPO(X86)信息以及图像中的所有调试符号信息。

如果【SymbolsPath,】传递NULL,则.DBG文件存储在映像存在的目录中。否则,它存储在匹配图像扩展名的【SymbolsPath】下面的子目录中。建议使用此方法,因为它会减少符号文件冲突的可能性(foo.exe的符号将位于【SymbolsPath】 \\ exe中,foo.dll将位于【SymbolsPath】 \\ dll中)。