什么是符号化调用堆栈?

时间:2015-04-23 17:53:49

标签: visual-studio-2010 debugging chromium-embedded

我一直在使用Visual Studio 2010上的应用程序(Windows)并遇到崩溃。所以对于我请求专家的帮助,他让我提交一个符号化的崩溃堆栈。任何人都可以解释一下这个符号化的调用堆栈究竟是什么以及如何从VS中获取它。我正在构建的应用程序正在使用CEF(Chromium嵌入式框架)。我已经下载了二进制文件并根据我的需要对其进行了修改。

2 个答案:

答案 0 :(得分:1)

它具有函数名称(理想情况下是文件名和行号),而不是普通的十六进制地址。

如果你的构建有调试符号,那么你应该在Visual Studio调试器的调用栈窗口中获得调用栈。

答案 1 :(得分:1)

我认为他要求一个带符号的调用堆栈(而不是像这样调用偏移量 - libcef.dll!11357796()未知)。

假设您正在使用CEF的二进制分发进行开发,请返回https://cefbuilds.com/并查找您使用的分发版和确切的内部版本号。在行的末尾,您将看到Debug或Release Symbols的附加链接。如果压缩,请下载这些并解压缩。

现在回到Visual Studio项目,直到遇到崩溃为止。双击其中一个未解决的符号,如" libcef.dll!11357796()未知"。您将看到一个对话框,要求您找到调试符号文件。导航到上一步中解压缩pdb文件的位置,它应该找到符号。然后,它将尝试加载源文件,除非您下载了CEF和Chromium源,否则您将无法加载源文件,但您不需要为符号堆栈轨道添加源文件。只需取消并在您的调用堆栈中,您现在应该看到所有libcef的符号。复制并粘贴并传递给帮助您的人。