Difference between revisions of "Gdb"

From dankwiki
 
(One intermediate revision by the same user not shown)
Line 8: Line 8:
 
* Use <tt>next</tt> and <tt>nexti</tt> to move forward, skipping over new stack frames
 
* Use <tt>next</tt> and <tt>nexti</tt> to move forward, skipping over new stack frames
 
* Export <tt>LD_BIND_NOW=1</tt> to force early symbol binding. This eliminates annoying dl code when resolving the [[ELF|.plt section]]
 
* Export <tt>LD_BIND_NOW=1</tt> to force early symbol binding. This eliminates annoying dl code when resolving the [[ELF|.plt section]]
 +
* Use <tt>set follow-fork-mode child</tt> to follow the child of <tt>fork</tt>/<tt>vfork</tt>
 +
==Stacktraces==
 +
* Stacktrace of all threads -- <tt>thread apply all bt</tt>

Latest revision as of 16:45, 7 October 2019

Display

display will evaluate and print an expression after each command run.

  • Use display/i $pc to get the current instruction address and decode
    • 2i will give you the current and next instruction

Control flow

  • Use finish to move to the end of a stack frame
  • Use step and stepi to move forward, descending into new stack frames
  • Use next and nexti to move forward, skipping over new stack frames
  • Export LD_BIND_NOW=1 to force early symbol binding. This eliminates annoying dl code when resolving the .plt section
  • Use set follow-fork-mode child to follow the child of fork/vfork

Stacktraces

  • Stacktrace of all threads -- thread apply all bt