View registers in crash dump

Is there a way to view the contents of the register in each stack frame in the crash dump? The register window appears to contain the registers when the exception occurred, but it would be useful to see their contents on each stack frame.

+1


source to share


4 answers


Depending on the calling convention, you might get some of the registers that are stored on the stack. For example, in the cdecl calling convention, all registers except EAX, ECX, and EDX must be stored by either the caller or the called party. These three registers are knockdown, so you generally won't be able to get your values ​​higher up the call stack. If the function does not use the register that needs to be saved, it will not save it, but since it does not use it, this register has the same value on the next higher stack.



+2


source


After some research and thinking about it, I realized that this is probably not possible. The crash mini-drive saves specific areas of the process's memory (depending on flags passed to the MiniDumpWriteDump () function) and enough state information to recreate the environment in which the debugger crashed. It doesn't have a processor state in every instruction or even every stack frame, it only knows about the processor state when the exception happened.



+1


source


In optimized builds, it is true that some information on the stack can be discarded, however you can ask the debugger to try and show you the information for a given stack frame. Do " kn

" first to see the stack with frame numbers, then try " .frame /c [frame]

" or " .frame /r [frame]

".

See help (" .hh

") for more information .

0


source


I don't think you can get it either when debugging. The only value you can get from registers is their value in the current instruction.

-1


source







All Articles