Skip to content
forked from mammon/gdbinit

GDB init file providing a SoftICE-style UI

Notifications You must be signed in to change notification settings

phoorichet/gdbinit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

=How to

1. copy gbb_init to your home directory
2. change the name to .gdbinit
3. enjoy!



A GDB init file providing a SoftICE-style user interface.

As featured in "More fun with GDB":
	http://www.ibm.com/developerworks/aix/library/au-gdb.html


Cheat Sheet by CMU
	http://csapp.cs.cmu.edu/public/docs/gdbnotes-x86-64.pdf

Summary of GDB commands for x86-64 Systems
  Command                  Effect
Starting:
  gdb
  gdb <file>

Running and stopping
  quit                      Exit gdb
  run                       Run program
  run 1 2 3                 Run program with command-line arguments 1 2 3
  kill                      Stop the program
  quit                      Exit gdb
  Ctrl-d                    Exit gdb
        Note: Ctrl-C does not exit from gdb, but halts the current
        gdb command
Breakpoints
  break sum                 Set breakpoint at the entry to function sum
  break *0x80483c3          Set breakpoint at address 0x80483c3
  delete 1                  Delete breakpoint 1
  disable 1                 Disable the breakpoint 1
                               (gdb numbers each breakpoint you create)
  enable 1                  Enable breakpoint 1
  delete                    Delete all breakpoints
  clear sum                 Clear any breakpoints at the entry to function sum
Execution
  stepi                     Execute one instruction
  stepi 4                   Execute four instructions
  nexti                     Like stepi, but proceed
                            through function calls without stopping
  step                      Execute one C statement
  continue                  Resume execution until the next breakpoint
  until 3                   Continue executing until program hits breakpoint 3
  finish                    Resume execution until current function returns
  call sum(1, 2)            Call sum(1,2) and print return value
Examining code
  disas                     Disassemble current function
  disas sum                 Disassemble function sum
  disas 0x80483b7           Disassemble function around 0x80483b7
  disas 0x80483b7 0x80483c7 Disassemble code within specified address range
  print /x $rip             Print program counter in hex
  print /d $rip             Print program counter in decimal
  print /t $rip             Print program counter in binary
Examining data
  print /d $rax             Print contents of %rax in decimal
  print /x $rax             Print contents of %rax in hex
  print /t $rax             Print contents of %rax in binary
  print /d (int)$rax        Print contents of %rax in decimal after
                            sign-extending lower 32-bits.
                            You need this to print 32-bit, negative
                            numbers stored in the lower 32 bits of
                            %rax. For example, if the lower 32-bits of
                            %rax store 0xffffffff, you will see                             
			    (gdb) print $rax
                            $1 = 4294967295
                            (gdb) print (int)$rax
                            $2 = -1
                            (gdb)
                            
  print 0x100               Print decimal representation of 0x100
  print /x 555              Print hex representation of 555
  print /x ($rsp+8)         Print (contents of %rsp) + 8 in hex
  print *(int *) 0xbffff890 Print integer at address 0xbffff890
  print *(int *) ($rsp+8)   Print integer at address %rsp + 8
  print (char *) 0xbfff890  Examine a string stored at 0xbffff890
  x/w   0xbffff890          Examine (4-byte) word starting at address
                            0xbffff890
  x/w   $rsp                Examine (4-byte) word starting at address in $rsp
  x/wd  $rsp                Examine (4-byte) word starting at address in $rsp.
                            Print in decimal
  x/2w  $rsp                Examine two (4-byte) words starting at address
                            in $rsp
  x/2wd $rsp                Examine two (4-byte) words starting at address
                            in $rsp. Print in decimal
  x/g   $rsp                Examine (8-byte) word starting at address in $rsp.
  x/gd  $rsp                Examine (8-byte) word starting at address in $rsp.
                            Print in decimal
  x/a   $rsp                Examine address in $rsp. Print as offset from
                            previous global symbol.
  x/s   0xbffff890          Examine a string stored at 0xbffff890
  x/20b sum                 Examine first 20 opcode bytes of function sum
  x/10i sum                 Examine first 10 instructions of function sum
  (Note: the format string for the ‘x’ command has the general form 
     x/[NUM][SIZE][FORMAT] where
    NUM  = number of objects to display
    SIZE = size of each object (b=byte, h=half-word, w=word,
                                g=giant (quad-word))
    FORMAT = how to display each object (d=decimal, x=hex, o=octal, etc.)
    If you don’t specify SIZE or FORMAT, either a default value, or the last
    value you specified in a previous ‘print’ or ‘x’ command is used.
  )
Useful information
  backtrace                 Print the current address and stack backtrace
  where                     Print the current address and stack backtrace
  info program              Print current status of the program)
  info functions            Print functions in program
  info stack                Print backtrace of the stack)
  info frame                Print information about the current stack frame
  info registers            Print registers and their contents
  info breakpoints          Print status of user-settable breakpoints
  display /FMT EXPR         Print expression EXPR using format FMT
                            every time GDB stops
  undisplay                 Turn off display mode
  help                      Get information about gdb

About

GDB init file providing a SoftICE-style UI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published