User Tools

Site Tools


gdb

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
gdb [2016/10/17 10:01] dblumegdb [2023/04/12 20:44] (current) – external edit 127.0.0.1
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: 2023/04/12 20:44 (external edit)