[转] GDB attach】的更多相关文章

转:http://blog.csdn.net/wangeen/article/details/14230171 attach是GDB一种重要的debug模式,在MPI程序debug中发挥重要的作用. 具体的执行步骤如下: 1) 首先在程序开始的地方添加如下代码, 注意这是个死循环,之所以用死循环就是让他一直在等待attch { int i = 0; char hostname[256]; gethostname(hostname, sizeof(hostname)); printf("PID %…
Could not attach to process.  If your uid matches the uid of the targetprocess, check the setting of /proc/sys/kernel/yama/ptrace_scope, or tryagain as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf 从ubuntu10.10开始,除非进程B是进程A的子进程,或者…
[测试程序] 我们先看看我们的测试程序: /* in eg1.c */ int wib(int no1, int no2) {         int result, diff;         diff = no1 - no2;         result = no1 / diff;         return result; } int main() {         pid_t   pid;         pid = fork();         if (pid <0) {   …
1.启动调试 前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息.gdb program //最常用的用gdb启动程序,开始调试的方式gdb program core //用gdb查看core dump文件,跟踪程序core的原因gdb program pid //用gdb调试已经开始运行的程序,指定pid即可gdb attach pid //用gdb调试已经开始运行的程序,指定pid即可 2.调试命令(1)执行命令模式-bat…
基本i threads 等操作略过,只谈线程同步.异步控制: 先点到,gdb attach到主线程t1 时,所有线程都会停止,所谓同步异步效果,是指在apply continue到所有线程之后, 再切换到t2,发现t3还在运行(如果t3卡在了断点上,也算运行,只不过运行后停止了). 再点到,gdb 直接attach 到非主线程时,是不影响,其他线程的启停的.无论如何设置non-stop或者schedule选项. 以下,重点说下non-stop和schedule选项: 1 non-stop 只能在…
gdb thread apply all bt 如果你发现有那么几个栈停在 pthread_wait 或者类似调用上,大致就可以得出结论:就是它们几个儿女情长,耽误了整个进程. 注意gdb的版本要高于7.0,之前使用过gdb6.3调试多线程是不行的. 从上图可以看出两个线程都阻塞在wait上,而且还给出了在哪一行代码中,很容易就定位到产生死锁的位置. 有时候线程太多,想写到文件里,可以: (gdb)set logging file <文件名> (gdb)set logging on (gdb)…
GDB配置与.gdbinit的编写 当 GDB(即 GNU Project Debugger)启动时,它在当前用户的主目录中寻找一个名为 .gdbinit 的文件:如果该文件存在,则 GDB 就执行该文件中的所有命令.通常,该文件用于简单的配置命令,如设置所需的缺省汇编程序格式(Intel® 或 Motorola)或用于显示输入和输出数据的缺省基数(十进制或十六进制).它还可以读取宏编码语言,从而允许实现更强大的自定义.该语言遵循如下基本格式: define <command> <cod…
[1].终端目录设置到: proj.android[2].make文件的编译选项加上: -g -gstabs+[3].执行编译脚本: sh ./build_native.sh NDK_DEBUG=1[4].将生产的gdbserver push到手机上,找个能写的目录: adb push ./libs/armeabi/gdbserver data/data/tmp[5].启动app[6].终端: adb shell[7].终端: su[8].终端: cd data/data/tmp (到存放gdb…
概述:GDB是linux下调试程序的神器,做为linux程序员,如果不能熟练的使用GDB进行程序调试,那将是很失败的事情.强大的功能使GDB的使用也变得比较复杂,如果是初学者肯定会比繁杂的命令吓到.下面是整理的一些我认为会比较有帮助的部分.下文中以">"开头的命令是linux的shell命令,以"(GDB)"开头的则是GDB内部命令.   0.转储功能(core dump):     (1).开启转储功能:首先用 >ulimit -c 查看是否开启转储功…