一、定位方法
1、在运行的程序目录下运行:
#查看内存限制
ulimit -c
#不限制
ulimit -c unlimited
2、在目录下运行 你的程序名
出错后,会在当前目录生成 core 文件
3、
gdb 你的程序名 core
4、输入 bt 对该错误进行跟踪调试
(gdb) bt
5、会出现形如下图的代码
#0 0x0000007f9bc6b4d8 in __GI_raise (sig=sig@entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x0000007f9bc6c8b4 in __GI_abort () at abort.c:79
#2 0x0000007f9bf0310c in __gnu_cxx::__verbose_terminate_handler() ()
at /usr/lib/aarch64-linux-gnu/libstdc++.so.6
#3 0x0000007f9bf00c54 in () at /usr/lib/aarch64-linux-gnu/libstdc++.so.6
#4 0x0000007f9bf00ca0 in () at /usr/lib/aarch64-linux-gnu/libstdc++.so.6
#5 0x0000007f9bf00fc8 in __cxa_rethrow ()
at /usr/lib/aarch64-linux-gnu/libstdc++.so.6
#6 0x0000007f9d38ee28 in apache::thrift::transport::TSocket::local_open() (this=0x7f64001d00) at src/thrift/transport/TSocket.cpp:473
#7 0x000000557d14cd80 in DetectClientThread::run() ()
#8 0x0000007f9c0dda60 in () at /usr/lib/aarch64-linux-gnu/libQt5Core.so.5
#9 0x0000007f9c00b088 in start_thread (arg=0x7fc4dff97f)
at pthread_create.c:463
#10 0x0000007f9bd094ec in thread_start ()
at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78
然后 输入 up 数字、 down 数字 可以进入
比如我输入 up 6
接着输入 l(list的第一个字母),可以查看出错的源码