remote gdb

时间:2021-09-23 04:28:38

[email protected]:/usr/download/test/mygcc$ cat testthread.cc -n
     1    // thread example
     2    #include <iostream>       // std::cout
     3    #include <thread>         // std::thread
     4     
     5    void foo() 
     6    {
     7      // do stuff...
     8    }
     9    
    10    void bar(int x)
    11    {
    12      // do stuff...
    13    }
    14    
    15    int main() 
    16    {
    17      std::thread first (foo);     // spawn new thread that calls foo()
    18      std::thread second (bar,0);  // spawn new thread that calls bar(0)
    19    
    20      std::cout << "main, foo and bar now execute concurrently...n";
    21    
    22      // synchronize threads:
    23      first.join();                // pauses until first finishes
    24      second.join();               // pauses until second finishes
    25    
    26      std::cout << "foo and bar completed.n";
    27      while(1) std::cout << "dddd" << std::endl;
    28      return 0;
    29    }


[email protected]:/usr/download/test/mygcc$ ps aux |grep a.out 
moonx 21046 0.0 0.0 15976 976 pts/22 S  11:34 0:00 grep --color=auto a.out
[email protected]:/usr/download/test/mygcc$ gdbserver 192.168.3.199:8084 nohup ./a.out &
[1] 21068
[email protected]:/usr/download/test/mygcc$ Process nohup created; pid = 21073
Listening on port 8084
Remote debugging from host 192.168.5.45
nohup: ignoring input and appending output to nohup.out


[email protected]:/usr/download/test/mygcc$ tail -f nohup.out 

main, foo and bar now execute concurrently...
foo and bar completed.
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
[email protected]:~/develop/apollo$ gdb
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3 : GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb) target remote 192.168.3.199:8084
Remote debugging using 192.168.3.199:8084
Reading /usr/bin/nohup from remote target...
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
Reading /usr/bin/nohup from remote target...
Reading symbols from target:/usr/bin/nohup...Reading /usr/bin/a35c78152db5d2034893ca21a04cc8ab08094f.debug from remote target...
Reading /usr/bin/.debug/a35c78152db5d2034893ca21a04cc8ab08094f.debug from remote target...
(no debugging symbols found)...done.
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading symbols from target:/lib64/ld-linux-x86-64.so.2...Reading /lib64/ld-2.23.so from remote target...
Reading /lib64/.debug/ld-2.23.so from remote target...
(no debugging symbols found)...done.
0x00007ffff7dd7c30 in ?? ()
   from target:/lib64/ld-linux-x86-64.so.2
(gdb) list
No symbol table is loaded.  Use the "file" command.
(gdb) b main
Function "main" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (main) pending.
(gdb) b testthread.cc:27
No symbol table is loaded.  Use the "file" command.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 2 (testthread.cc:27) pending.
(gdb) c
Continuing.
Reading /lib/x86_64-linux-gnu/libc.so.6 from remote target...
Reading /lib/x86_64-linux-gnu/libc-2.23.so from remote target...
Reading /lib/x86_64-linux-gnu/.debug/libc-2.23.so from remote target...
warning: the debug information found in "/usr/lib/debug/lib/x86_64-linux-gnu//libc-2.23.so" does not match "target:/lib/x86_64-linux-gnu/libc.so.6" (CRC mismatch).

process 21073 is executing new program: /usr/download/test/mygcc/a.out
Reading /usr/download/test/mygcc/a.out from remote target...
Reading /usr/download/test/mygcc/a.out from remote target...
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading /lib64/ld-2.23.so from remote target...
Reading /lib64/.debug/ld-2.23.so from remote target...
Reading /usr/lib/x86_64-linux-gnu/libstdc  .so.6 from remote target...
Reading /lib/x86_64-linux-gnu/libgcc_s.so.1 from remote target...
Reading /lib/x86_64-linux-gnu/libpthread.so.0 from remote target...
Reading /lib/x86_64-linux-gnu/libc.so.6 from remote target...
Reading /lib/x86_64-linux-gnu/libm.so.6 from remote target...
Reading /usr/lib/x86_64-linux-gnu/libstdc  .so.6.0.21 from remote target...
Reading /usr/lib/x86_64-linux-gnu/.debug/libstdc  .so.6.0.21 from remote target...
Reading /lib/x86_64-linux-gnu/.debug/libgcc_s.so.1 from remote target...
Reading /lib/x86_64-linux-gnu/7c21299099640a6d863e423d99265824e7bb16.debug from remote target...
Reading /lib/x86_64-linux-gnu/.debug/7c21299099640a6d863e423d99265824e7bb16.debug from remote target...
Reading /lib/x86_64-linux-gnu/libc-2.23.so from remote target...
Reading /lib/x86_64-linux-gnu/.debug/libc-2.23.so from remote target...
warning: the debug information found in "/usr/lib/debug/lib/x86_64-linux-gnu//libc-2.23.so" does not match "target:/lib/x86_64-linux-gnu/libc.so.6" (CRC mismatch).

Reading /lib/x86_64-linux-gnu/libm-2.23.so from remote target...
Reading /lib/x86_64-linux-gnu/.debug/libm-2.23.so from remote target...
warning: the debug information found in "/usr/lib/debug/lib/x86_64-linux-gnu//libm-2.23.so" does not match "target:/lib/x86_64-linux-gnu/libm.so.6" (CRC mismatch).


Breakpoint 1, main () at testthread.cc:16
16    testthread.cc: No such file or directory.
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) list
22    in testthread.cc
(gdb) list
22    in testthread.cc
(gdb) list
22    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) cc
Undefined command: "cc".  Try "help".
(gdb) 
Undefined command: "cc".  Try "help".
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb) c
Continuing.

Breakpoint 2, main () at testthread.cc:27
27    in testthread.cc
(gdb)