linux segfault at 问题定位实践
创始人
2024-05-31 04:02:45
0

问题:

程序崩溃,打印为:

app[13016]: segfault at 7fb668d29930 ip 00007fb668d3c23c sp 00007fb668e7de20 error 7 in mydefine.so[7fb668d34000+11000]

定位步骤:

  1. 基础分析数据,大概了解反馈信息

(根据chatGPT)

这是由名为“app”的应用程序2生成的消息,指示应用程序由于分段错误而崩溃。

特定的错误消息指示故障发生在内存地址“7fb668d29930”,

指令指针“ip”位于地址“00007fb668d3c23c”。

崩溃时的“sp”或堆栈指针位于地址“00007fb668e7de20”。

“错误 7”代码指示与无效内存引用相关的特定类型的分段错误。

消息的最后一部分提供有关崩溃原因的其他信息。它指示崩溃发生在名为“mydefine.so”的共享库中,并且该库的基址为“7fb668d34000”,大小为“11000”字节。这表明应用程序正在使用共享库中的代码,并且错误发生在此代码中。

总体而言,此错误消息提供了一些用于调试崩溃的有用信息,包括发生故障的内存地址和指令指针、分段错误的类型以及发生崩溃时正在使用的共享库的名称和位置。但是,可能需要进一步调查以确定故障的具体原因并解决问题。

2.计算偏移地址

偏移地址= 指令指针 - 库的基地址。

    7fb668d3c23c 
-   7fb668d34000 
=    823C 

这里仅仅使用了ip和so的基地址,其他的内存和sp地址信息暂未使用。

3.寻找对应的汇编位置

用了objdump -S mydefine.so | grep 823c:

反馈:

1823c:       40 88 ac 08 30 1a 01    mov    %bpl,0x11a30(%rax,%rcx,1)

和我们要的823c有点不一样,多了10000.

这里查看了objdump -S mydefine.so的信息中包含了:

Disassembly of section .text:0000000000010f00 :10f00:    48 8d 3d 31 16 01 00     lea    0x11631(%rip),%rdi        # 22538 <__TMC_END__>10f07:    48 8d 05 2a 16 01 00     lea    0x1162a(%rip),%rax        # 22538 <__TMC_END__>............

这个根本没有823C,最低从10000开始?

由于计算的是指令地址,应该是.text中的偏移吧?大概是从10000偏移,这样的话1823c就是要找到的出错的地址。

接着就将objdump -S mydefine.so > 1.txt

生成独立的文件,用编辑工具打开来查看对应的1823c是属于哪一个函数,然后打开源码进行对应,定位是哪一个函数的哪一行出现的问题。

如本例子的大概定位如下:

0000000000018206 :18206:    55                       push   %rbp18207:    41 57                    push   %r1518209:    41 56                    push   %r14......1822e:    48 63 8b bc 02 00 00     movslq 0x2bc(%rbx),%rcx18235:    48 69 c9 00 6f 00 00     imul   $0x6f00,%rcx,%rcx1823c:    40 88 ac 08 30 1a 01     mov    %bpl,0x11a30(%rax,%rcx,1)......

4.对照源码,寻找出错源码行

由于可能程序使用了编译优化指令(如-O3等),所以需要对照着源码来猜测大概的行。

这里需要个人对汇编的基本理解和objdump生成的右侧的提示注释来自行判断。

这里这个单个例子的结果还是满意的,后续其他例子有问题再补充其他情况如何定位问题。

相关内容

热门资讯

宗亲联谊大会主持词 宗亲联谊大会主持词  主持词要注意活动对象,针对活动对象写相应的主持词。在人们越来越多的参与各种活动...
和谐之声新春联欢会主持台词稿 和谐之声新春联欢会主持台词稿  (联欢会开场前60分钟内,所有接待、服务、道具、灯光、音响、服装、化...
遗体告别主持词 2021遗体告别主持词范文(通用5篇)  主持词是各种演出活动和集会中主持人串联节目的串联词。在当下...
颁奖典礼主持词 关于颁奖典礼主持词(通用5篇)  主持词是各种演出活动和集会中主持人串联节目的串联词。在各种集会、活...
高中学生家长会主持词 高中学生家长会主持词汇编  许多家长把注意力集中在孩子的学习上,其实,作为家长更应该从侧面关心孩子的...
公司元旦晚会活动主持词 公司元旦晚会活动主持词  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。现今社会在不断...
开业主持词 开业主持词龙腾四海,凤舞九天;光辉酒店,鸿业竣开!香飘万家,技艺精湛;四面得利,八方进财!尊敬的各位...
师德师风演讲比赛主持稿 师德师风演讲比赛主持稿范文(通用7篇)  在快速变化和不断变革的今天,很多地方都会使用到主持稿,主持...
结婚仪式主持词 结婚仪式主持词10篇  主持词是各种演出活动和集会中主持人串联节目的串联词。我们眼下的社会,主持人参...
企业年会主持词开场白精选   新年拉近了我们成长的距离,新年染红了我们快乐的生活。下面是CN人才网小编为大家整理的年会主持词开...
教师节座谈会校长致辞 教师节座谈会校长致辞(精选16篇)  在日常学习、工作抑或是生活中,大家对致辞都再熟悉不过了吧,在各...
五一晚会开幕词与闭幕词 五一晚会开幕词与闭幕词  在当今社会生活中,我们经常都会使用到开幕词,开幕词对引导会议或活动顺利进行...
含笑半步颠经典台词 含笑半步颠经典台词  在社会发展不断提速的今天,我们使用上台词的情况与日俱增,台词是构成一个剧本的基...
联谊会主持词 有关联谊会主持词集合8篇  主持词是各种演出活动和集会中主持人串联节目的串联词。在人们积极参与各种活...
晚会闭幕词 晚会闭幕词(通用37篇)  在日新月异的现代社会中,很多情况下我们需要用到主持稿,主持稿起到承上启下...
婚礼主持词 婚礼主持词(精选20篇)  主持词要注意活动对象,针对活动对象写相应的主持词。在人们越来越多的参与各...
半年总结会主持词 半年总结会主持词  以下是由应届毕业生网PQ小编为大家整理出来的半年总结会主持词,仅供参考,半年总结...
最短的对口相声台词 最短的对口相声台词范文  相声是一种中国曲艺表演艺术,源于华北,流行于京津冀,普及于全国及海内外,始...
司仪主持词 精选司仪主持词(精选14篇)  主持词需要富有情感,充满热情,才能有效地吸引到观众。在各种集会、活动...