GDB 调试Coredump问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GDB 调试Coredump问题相关的知识,希望对你有一定的参考价值。

参考技术A 如果用CMake编译工程,则使用选项CMAKE_BUILD_TYPE=Debug:

这样做g++编译时就会包含选项-g。如果要同时包含-ggdb选项,可以设置变量CMAKE_CXX_FLAGS_DEBUG。

%e - insert coredumping executable name into filename 添加导致产生core的命令名
%p - insert pid into filename 添加pid(进程id)

运行程序,生成core文件。下面的命令强制生成core文件:

或者进入gdb后

file从文件exec加载symbol和executable, core从core中加载coredump

如果是调试Core的机器(host)不是生成Core的机器(target),则动态库可能不在程序指定的位置上。这时需要指定动态库的位置。

首先用info sharedlibrary,可以查看动态库的symbol是否加载正确

如果库在host上的布局与在target上的布局相同,则使用solib-absolute-prefix比较方便。

target上:

host上:

则可以设置solib-search-path为:

solib-absolute-prefix有个更常用的别名sysroot,所以如下的命令是一样的:

设置solib-search-path可以指定多个路径,路径之间用:隔开。

在多线程的环境下,可以用info threads显示所有线程,thread指定线程为当前线程。

GDB 常用法
GDB 调试Coredump问题
嵌入式开发中GDB调试Coredump问题
嵌入式开发中GDB串口远程调试
用backtrace()调试coredump问题
Valgrind memcheck 用法
Address Sanitizer 用法

段错误及GDB Coredump调试方法
https://blog.csdn.net/oscarjulia/article/details/74256997

gdb调试多进程与多线程
https://blog.csdn.net/snow_5288/article/details/72982594

以上是关于GDB 调试Coredump问题的主要内容,如果未能解决你的问题,请参考以下文章

gdb调试coredump文件

gdb 调试coredump文件过程:

GDB 调试Coredump问题

linux 程序崩溃 gdb调试coredump文件

记录一次使用GDB调试coredump

记录一次使用GDB调试coredump