繁体   English   中英

我可以从此回溯中找到导致崩溃的代码行吗?

[英]Can I find the codeline causing the crash from this backtrace?

我有这样的回溯,而且我有xswiftbus的源代码。 有没有办法找出“数字”属于哪个代码行?

所以我可以从中找出我的调用堆栈。 无论是QtC还是VS2017。

我个人无法重现导致回溯的崩溃,但也许我至少可以看到涉及哪些功能。

Backtrace is:
0 00007FF8EE00BE1B E:\X-Plane 11\Resources\plugins\xswiftbus\64\win.xpl+000000000000BE1B ()
1 00007FF8EE028D1D E:\X-Plane 11\Resources\plugins\xswiftbus\64\win.xpl+0000000000028D1D ()
2 00007FF8EE00A64D E:\X-Plane 11\Resources\plugins\xswiftbus\64\win.xpl+000000000000A64D ()
3 00007FF8EE028B19 E:\X-Plane 11\Resources\plugins\xswiftbus\64\win.xpl+0000000000028B19 ()
4 00007FF8EE00F025 E:\X-Plane 11\Resources\plugins\xswiftbus\64\win.xpl+000000000000F025 ()
5 00007FF9084E5202 E:\X-Plane 11\Resources\plugins\XPLM_64.dll+0000000000015202 ()
6 00007FF9084DB362 E:\X-Plane 11\Resources\plugins\XPLM_64.dll+000000000000B362 ()
7 00007FF7802156CA E:\X-Plane 11\X-Plane.exe+0000000000A456CA ()
8 00007FF77F8AA69E E:\X-Plane 11\X-Plane.exe+00000000000DA69E ()
  1. 下载并安装WinDbg

  2. 获取与发行版匹配的XPL文件(如果可能,例如下载该版本),然后将其重命名为DLL。

  3. 选择“开始调试”,然后选择“打开转储文件”,即使您没有转储文件也是如此。

  4. 选择重命名的DLL文件

  5. 键入.symopt +40 ,以允许加载与二进制文件不匹配的符号。

  6. 键入.symfix以获取Microsoft符号

  7. 键入.sympath+ <path to your PDB>

  8. 键入ln <address>

那应该给出一个输出

0:000> ln 10009a9d
(10009a90)   MNbasic!str_encode_num_str+0xd   |  (10009b80)   MNbasic!str_alpha_num_code

因此,您不仅拥有一个偏移量,而且现在有了一个方法名和一个偏移量。 如果偏移量仍然很大,则符号可能相距太远。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM