linux 进程崩溃log,linux编程入门(九)-程序崩溃之后的排错及定位

news/2024/11/15 2:27:25/

当我们写程序时候难免会因为各种问题崩掉,如果是开发阶段,我们可以开gdb跟踪调试,但如果到了线上,就不能用gdb了,这时候我们可以把崩溃时候的调用栈信息打印出来,然后定位到具体崩溃的代码位置.

想要定位到具体的行号,需要在编译的时候加入-g参数,表示编译时候加入调试信息,调试信息里有相关的信息可以使地址转为行号.

下面介绍几个可以定位到崩溃位置的方法:

使用core文件

core文件其实是程序崩溃后的内存数据,也叫core dump或者dump文件,当得到core文件后就可以用gdb打开core文件,就能定位崩溃的位置了.

接下来我们先准备好一段测试代码,后面就用这段代码搞点事情

代码里我们故意除以0,使程序崩溃

float div(int a, int b){

float c = a/b;

return c;

}

int main(int argc, char** argv){

(void)argc;

(void)argv;

int a = 10;

int b = 0;

float c = div(a, b);

printf("div: %d/%d=%.2f\n", a, b, c);

return 0;

}

假如我们编译好的程序叫main,执行后,会显示Floating point exception,也就是除0错误了

bash$ ./main

Floating point exception (core dumped)

这时候看一下当前目录有没有生成core文件,默认应该是没有.

bash$ ls

main main.cpp main.o Makefile


http://www.ppmy.cn/news/208942.html

相关文章

SAP-ABAP-查找后台表修改记录

前提条件,SE11该表启用了log changs RZ10维护了记录日志的client 如何查找这些表的修改记录呢? AUT10--->选择增强模式 输入表格,执行 能看到修改的日期,时间,修改人,修改的事务码,不管是S…

VirtualBox装VBoxGuestAdditions增强工具失败

本人在安装VBoxGuestAdditions增强工具失败,报错代码为 未能加载虚拟光盘 D:\0program\VirtualBox\load\VBoxGuestAdditions.iso 到虚拟电脑 centos1. Could not mount the media/drive D:\0program\VirtualBox\load\VBoxGuestAdditions.iso (VERR_PDM_MEDIA_LOCKE…

VirtualBox 虚拟机界面调整

安装步骤: 在主界面选择设备-安装增强功能 进入media 目录下 cd /media 使用ls找到执行文件 运行 sudo sh VBOXADDITIONS_4.3.6_91406.run 重启计算机 sudo reboot 设置分辨率未能加载虚拟光盘 D:\VirtualBox6.14\VBoxGuestAdditions.iso 到虚拟电脑 MyCentOS7. Cou…

达尔优A900虎擎版 评测

该鼠标的外包装上采用了非常喜庆的红色与金黄配色风格,看起来年味十足,也有着更高的辨识度表现。 附件方面提供了支持快充的USB Type-C伞绳线材、带有虎纹图案的鼠标防滑贴、替换脚贴、品牌贴纸、擦拭纸及说明书等卡纸,附件内容非常丰富&…

泛泰A900 刷4.4中国民营TWRP2.7.1.1版本 支持自己主动识别移动版本号(世界上第一)...

因本人手上的A900S已砖, 所以临时弄不了ROM了。 先上传之前已经弄好的刷4.4专用的新版TWRP recovery 2.7.1.1 这个版本号是我自己定义的,为差别之前公布的2.7.0.0版(omni官方最新还是2.7.0.0版)。 2014.5.23 更新内容 1、 修正2.…

泛泰A900 刷4.4专用中文TWRP2.7.1.1版 支持自己主动识别手机版本号(全球首创)...

因本人手上的A900S已砖, 所以临时弄不了ROM了, 先上传之前已经弄好的刷4.4专用的新版TWRP recovery 2.7.1.1 这个版本号是我自己定义的,为差别之前公布的2.7.0.0版(omni官方最新还是2.7.0.0版)! 2014.5.23…

NetApp AFF A900:针对任务关键型应用程序的解决方案

NetApp AFF A900:适用于数据中心的解决方案 AFF A 系列中的 AFF A900 高端 NVMe 闪存存储功能强大、安全可靠、具有故障恢复能力,提供您为任务关键型企业级应用程序提供动力并保持数据始终可用且安全所需的一切。 AFF A900:针对任务关键型应…

jeecgboot使用的问题记录

最近使用jeecgboot些项目,总结使用过程中的问题。 form表单 1.下拉框 — 使用字典方式 {label: 工单状态,field: orderStatus,component: JDictSelectTag,componentProps: {dictCode: emergency_order_status,}, } 2.下拉框—使用接口获取数据方式 配置项 { l…