Linux调试笔记

gdb调试-----------------------------------------------------------------------------------------

CMakeFile.txt加入set(CMAKE_BUILD_TYPE Debug)

gdb ./rknn_MNIST

打断点 b 110/main(行号/函数名)

单步调试 s(step)

单步跳过 n(next)

继续c(continue)

打印变量 print

info b 断点信息

info locals 打印局部变量

segmentation fault(core dump)--------------------------------------------------------------------

在 Linux 系统中,常将“主内存”称为核心(core),而核心映像(core image) 就是 “进程”(process)执行当时的内存内容。

当进程发生错误或收到“信号”(signal) 而终止执行时,系统会将核心映像写入一个文件,以作为调试之用,这就是所谓的核心转储(core dump)。系统会在指定目录下生成一个core文件,我们可以通过 core文件来进行错误定位以及调试。

1:开启core文件生成功能

ulimit -c

ulimit -c unlimited 不限制大小,但只在当前终端有效

若要始终有效可以在/etc/profile加入

ulimit -c unlimited

2:查找生成的core dump文件

 cat /proc/sys/kernel/core_pattern

find . -name "core.*"一般是core.namexxxxxxxxxxxxxxxxxx

3:gdb ./test core.xxxxxxxxxxxxxx

--->sudo gdb ./rknn_MNIST /var/lib/apport/coredump/core._data_rknn_MNISTLinux_rknn_MNIST.0.67cdb2f8-23da-40be-b047-c777cb75c00d.8065.200974

猜你喜欢

转载自blog.csdn.net/warren103098/article/details/131480488