[[gdb]]
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gdb [2016/10/17 10:01]
dblume
gdb [2020/01/16 09:14] (current)
dblume
Line 1: Line 1:
 ====== gdb ====== ====== gdb ======
 +
 +===== Example code with a deadlock =====
 +
 +Build your target with debug symbols. For example, with [[http://git.dlma.com/testcode.git/|the testcode project]], make with the target "debug"
 +
 +  make debug
 +
 +If the deadlock was compiled in, then run it like so:
 +
 +  product/testcode &
 +
 +Then you can run gdb and attach to the process in one of the following ways.
 +
 +  $ gdb -p <pid-of-testcode>
 +  
 +  $ gdb product/testcode <pid-of-testcode>
 +  
 +  $ gdb
 +  (gdb) attach <pid-of-testcode>
 +  
 +
 +===== Tips =====
  
 Show all the backtraces: Show all the backtraces:
Line 12: Line 34:
   (gdb) t a a bt -3   # thread apply all backtrace top three frames   (gdb) t a a bt -3   # thread apply all backtrace top three frames
  
-==== Detecting a Deadlock ====+===== Detecting a Deadlock =====
  
 Get high level info on the threads: Get high level info on the threads:
Line 55: Line 77:
        
 Note the <nowiki>__owner</nowiki> of the mutex that thread 2 is waiting on. It's 24793. That's thread 3. There's your deadlock. Note the <nowiki>__owner</nowiki> of the mutex that thread 2 is waiting on. It's 24793. That's thread 3. There's your deadlock.
 +
 +==== Attaching to a remote target ====
 +
 +  - Deploy gdb server with the remote target. Launch remote target with gdb server. 
 +  - Untar remote libraries to a local dir. Eg., 487.72E04128A-2371582-rootfs.tar.gz in my ~/Downloads directory.
 +
 +    $ /usr/local/arm/bin/arm-linux-gdb builds/myapp.sym
 +    GNU gdb (GDB) 7.5.1
 +    This GDB was configured as "--host=i686-build_pc-linux-gnu --target=arm-brcm-linux-gnueabi".
 +    Reading symbols from builds/myapp.sym...done.
 +    (gdb) set sysroot ~/Downloads/rootfs/firmware.obj/root/
 +    (gdb) set solib-search-path builds/myapp.dir/
 +    (gdb) target remote 10.15.24.54:5555
 +    Remote debugging using 10.15.24.54:5555
 +    ...
 +    (gdb) c
 +
gdb.1476723661.txt.gz · Last modified: 2016/10/17 10:01 by dblume
 
Recent changes RSS feed Driven by DokuWiki