rust-minidump / rust-minidump

Type definitions, parsing, and analysis for the minidump file format.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Missing full stack trace in rust debugger compared to Visual Studio 2022

JoelSansait opened this issue · comments

Hi, we've been using the rust minidump debugger to debug crashes coming from a Windows app, and we've noticed that it's sometimes missing crash thread info.

ex:
image

However when we debug the same minidump in Visual Studio, we get the full stack trace. Ends up looking something like:

>	carb.crashreporter-breakpad.plugin.dll!google_breakpad::ExceptionHandler::HandlePureVirtualCall() Line 663	C++
 	[External Code]	
 	[Inline Frame] some.module.dll!some::module::Thing::function() Line 286	C++
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...
 	some.module.dll!some::module::etc...

Is there a way to configure rust minidump debugger to display the full stack trace like Visual Studio does? Thanks!

The only real difference I see here is that Visual Studio has symbols loaded for these modules whereas the rust minidump debugger does not. When symbols are not available it's very common for stack traces to end prematurely, especially on a CPU like amd64 where most platforms disable frame pointers by default and require the use of unwind tables for stack walking.

If you have a symbol server, you may need to point the debugger at it:

Screen Shot 2022-11-13 at 4 23 22 PM

Unfortunately we don't currently support the full Microsoft NT_SYMBOLS_PATH system. Also note that any handling of native debuginfo (not processed by dump_syms) is experimental/hacky.