1、gdb gdb是程序员必备的调试工具,网上资料比较多我就不详细介绍,这里几个常用的调试方式: gdb [options][执行文件 core文件|进程PID] $ (gdb) info all-reg # 显示所有处理器寄存器的内容,包括浮点和向量寄存器 $ (gdb) list filename:line_number # 显示源代码,并以指定的行作为中心 $ (gdb) break [...
直接在gdb中把一个正在运行的进程连接到gdb中,以便于进行动态调试;使用attach命令,attach <进程ID>: 当使用attach命令时,你应该先使用file命令来指定进程所联系的程序源代码和符号表;当gdb接到attach命令后的第一件事情就是停止进程的运行,你可以使用所有gdb的命令来调试一个已"连接"到gdb的进程,这就像你使用run/...
gdb通常可以捕捉到发送给它的大多数信号,通过捕捉信号,它就可决定对于正在运行的进程要做些什么工作。例如,按CTRL-C将中断信号发送给gdb,通常就会终止gdb。但是你或许不想中断gdb,真正的目的是要中断gdb正在运行的程序,因此,gdb要抓住该信号并停止它正在运行的程序,这样就可以执行某些调试操作。 Handle命令可控制信号...
(gdb) quit 我们做一个实验,把源代码改名或移到别处再用gdb调试,这样就列不出源代码了: $ mv main.c mian.c $ gdb main ... (gdb) l 5 main.c: No such file or directory. in main.c 可见gcc的-g选项并不是把源代码嵌入到可执行文件中的,在调试时也需要源文件。现在把源代码恢复原样,我们继续...
[root@lisl boot]#gdbstart -s 115200 -t /dev/ttyS0 可以在KGDB内核引导启动完成后建立开发机与目标机之间的调试联系。 2.3 通过网络接口进行调试 kgdb也支持使用以太网接口作为调试器的连接端口。在对Linux内核应用补丁包时,需应用eth.patch补丁文件。配置内核时在Kernel hacking中选择kgdb调试项,配置kgdb调试...
(gdb) l 1 #include<sys/stat.h> 2 #include<sys/types.h> 3 #include<unistd.h> 4 #include<stdio.h> 5 6 int main(void) 7 { 8 struct stat st; 9 10 if(-1==stat("test.txt",&st)) (gdb) 11 { 12 printf("get file status failure\n"); ...
(gdb)info threads ###显示运行的线程信息(23869是父进程的PID)Id Target Id Frame*1Thread0x7ffff7fe1740(LWP23869)"gdb_pthread"0x00007ffff709b50cin__libc_fork()at../nptl/sysdeps/unix/sysv/linux/fork.c:130(gdb)info inferiors ###显示正在调试的进程:1前面的星号表示当前调试的进程(PID23869)。
默认设置下,在调试多进程程序时gdb只会调试主进程。gdb7以上的版本(gdb --version)支持多进程调试,只需要设置好follow-fork-mode(fork追踪模式)以及detach-on-fork(指示GDB在fork之后是否断开某个进程的调试)即可。 这两个参数的设置命令分别是:set follow-fork-mode [parent|child],set detach-on-fork [on|off...
2、使用 pstack 和 gdb 工具对死锁程序进行分析2.1 pstack 在 Linux 平台上的简单介绍 pstack 是 Linux(比如 Red Hat Linux 系统、Ubuntu Linux 系统等)下一个很有用的工具,它的功能是打印输出此进程的堆栈信息。可以输出所有线程的调用关系栈。 2.2 gdb 在 Linux 平台上的简单介绍 ...
printf( "[%s]: Can not create a thread.\n", cParent ); } ParentDo( cParent ); sleep(1); } void * ParentDo( char *argv ) { pid_t pid = getpid(); pthread_t tid = pthread_self(); //Get the thread-id selfly. char tprefix[] = "thread"; ...