在gdb中反汇编

时间:2018-02-26 13:52:02

标签: assembly gdb

如何打印变量地址/值,这会在我的函数中导致核心转储。

从gdb反汇编命令,我看到以下帧。

0x00000000005f3ae5 <+8373>: movl   $0x404,(%rsp)
0x00000000005f3aec <+8380>: mov    $0xda56f5,%r9d
0x00000000005f3af2 <+8386>: mov    $0xda77f0,%r8d
0x00000000005f3af8 <+8392>: mov    $0xda6870,%ecx
0x00000000005f3afd <+8397>: jmpq   0x5f1c15 <RmsArchiveRestSession::buildAndSendArchMmsReq(bool)+485>
0x00000000005f3b02 <+8402>: callq  0x5daaa0 <__stack_chk_fail@plt> ==> cause of dump

在这里,如何打印调用_stack_chk_fail函数的变量值/地址? 我对此很新..?请解释一些基本的基金。

=> 0x00000000005f3b07 <+8407>:  mov    %rax,%r15
   0x00000000005f3b0a <+8410>:  mov    %r13,%rdi
   0x00000000005f3b0d <+8413>:  callq  0x8514f0 <MavString::~MavString()>

请有人帮我理解上面的片段。

1 个答案:

答案 0 :(得分:0)

  

在这里,我如何打印导致调用_stack_chk_fail的变量值/地址

你不能:你问题中的片段是#34;太晚了#34;。您的函数中有jmp 0x5f3b0d某处 else ,而 是检测到失败的地方。