在编写 C++ Windows 应用程序时,我使用SymInitializeW来初始化符号以获取回溯。正如文档所述,我正在检查返回代码,然后在 SymInitializeW 返回 false 时使用GetLastError 和 FormatMessage (如示例中所示)。
但是,当我这样做时,我收到“传递给系统调用的数据区域太小”的错误消息。我不确定那指的是什么,因为实际上没有传递“数据区域”——只有进程句柄、搜索路径的 PCWSTR 和布尔值。-- 看起来符号加载有效,这让人倍感困惑。(例如,如果我跳过错误处理,事情似乎工作正常。)
此消息是否指向我实际上做错的事情,还是虚假的?如果是虚假的,为什么 SymInitializeW 返回 false?