Switching to assembly in gdb

后端 未结 5 770
予麋鹿
予麋鹿 2020-12-08 06:35

Is there is any way to switch to assembly when debugging a C or C++ program in gdb ? (Given that all source files and their corresponding assembly files are available)

相关标签:
5条回答
  • 2020-12-08 07:17

    There is a way to disassemble a function or a certain section of code, is that what you are after?

    The command to do so would be disassemble <function name> or a memory location.

    Is this what you are referring to?

    (gdb) help disassemble
    Disassemble a specified section of memory.
    Default is the function surrounding the pc of the selected frame.
    With a single argument, the function surrounding that address is dumped.
    Two arguments are taken as a range of memory to dump.
    
    0 讨论(0)
  • 2020-12-08 07:18

    In the new gdb version 7.0, the disassemble command can take a new argument /m which makes it emit mixed source and disassembly.

    0 讨论(0)
  • 2020-12-08 07:25

    That question was also asked in cgdb's googlegroup https://groups.google.com/forum/?hl=de&fromgroups=#!topic/cgdb-users/E-jZCJiBAQQ

    No answer yet on why layout asm doesnt work though

    Edit: They posted recently and told that its a feature that isnt implemented yet. (check the link above)

    0 讨论(0)
  • 2020-12-08 07:36

    You can switch to asm layout in gdb:

    (gdb) layout asm
    

    See here for more information.

    0 讨论(0)
  • 2020-12-08 07:38

    Using the disas command will probably do what you want.

    According to the internal help, the disas command does the following:

    Disassemble a specified section of memory.
    Default is the function surrounding the pc of the selected frame.
    With a single argument, the function surrounding that address is dumped.
    Two arguments are taken as a range of memory to dump.
    
    0 讨论(0)
提交回复
热议问题