gdb基本使用
https://blog.csdn.net/zdy0_2004/article/details/80102076
https://www.cnblogs.com/tangtangde12580/p/8045980.html
gdb多线程调试
https://www.cnblogs.com/lsgxeva/p/8078670.html
gdb可以直接打印内存(通过内存地址打印内存中的内容)
https://blog.csdn.net/q_l_s/article/details/54890661
gdb打印寄存器内容:
https://blog.csdn.net/Jogger_Ling/article/details/64443470
通过gdb调查死锁问题:
https://blog.csdn.net/jctian000/article/details/80695747
gdb调试core文件:
一般来说,程序在Linux上运行的过程中,出现了严重错误,比如:访问空指针 ,这种使得程序挂掉,这种问题难以定位。所以多数程序都会使用生成core文件的方式来定位这种问题。
core文件在程序出现段错误的时候,会报错当时的堆栈信息,以及一些调试信息保存。然后开发人员就可以使用gdb方式去查看core文件信息,以此来定位程序出现coredump的原因。
core文件的生成是依赖于Linux系统的shell设置的,一般来说系统会默认关闭core文件生成的开关,使用 ulimit -c 命令查看,如果结果为0,就表示程序即便coredump也不会生成core文件,
这个时候就需要用户使用命令 ulimit -c unlimited 取消系统对core文件大小的限制,程序在出现段错误后就会生成core文件了。
gdb调试core文件的方式也很简单:gdb ./xxx core文件
./xxx 这里的 xxx表示的就是该进程启动时的程序,而且相应的程序一定是需要带有debug信息的物件,否则就无法得到程序的详细信息。