方式一
在程序运行中出现异常,可以通过gdb以运行的方式调试程序,这里列出一个,
1、首先启动gdb
2、进入gdb执行页面后,输入file ./执行程序名称,这个命令将会将程序加载到内容中
3、输入r命令,运行程序
4、若程序崩溃,则输入bt命令查看调用栈
方式二
1、开启coredump开关,若没有打开coredump,首先要打开coredump开关命令,查询命令如下
consys@consys-Lenovo-Legion-Y7000:~$ ulimit -c
unlimited---这表示coredum开关已打开,并且coredump文件大小无限制
2、查看coredump文件的生成路径,通过如下的命令可以看到coredump文件生成的路径和名称
consys@consys-Lenovo-Legion-Y7000:~$ cat /proc/sys/kernel/core_pattern
/tmp/core-%p-%e-%t
其中%p的含义代表的是进程ID
%e的含义是应用程序名称(exexute)
%t的含义应该是时间
修改coredump文件的生成路径和格式,命令如下:
echo ‘/yourdir/core.%e-%p-%s’ > /proc/sys/kernel/core_pattern
还有其它的一些格式,自己查询即可。
3、进入到coredump文件生成目录,然后执行如下命令
gdb /home/xxx/xxx/可执行程序名称 coredump文件名称
执行上面的命令后,输入bt命令,即可查看到崩溃时的调用栈。