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