segfault at 0 ip (null)的问题

ztenv 版主
博客专家认证
2020-08-06 12:11:15
遇到一个问题,程序有时候会崩溃,dmesg的信息如下:
segfault at 0 ip (null) sp 00007f329e870418 error 14 in master-service[400000+23c000]

ip后面竟然是null,还是第一次遇到,代码涉及几万行,有没有什么方法定位?
...全文
2359 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztenv 版主 2020-08-06
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
段错误,一般是内存冲突 ip是null,要么就是ip是个空指针(没初期化),要么就是取ip出错了,没做出错判断就继续往后执行了 定位一下ip是在哪里定义,在哪里赋值的
哥,这里的ip是指cpu的ip寄存器
qybao 2020-08-06
  • 打赏
  • 举报
回复
段错误,一般是内存冲突
ip是null,要么就是ip是个空指针(没初期化),要么就是取ip出错了,没做出错判断就继续往后执行了
定位一下ip是在哪里定义,在哪里赋值的
ztenv 版主 2020-08-06
  • 打赏
  • 举报
回复
引用 5 楼 sevancheng 的回复:
操作了空指针,多加些assert,运行Debug版本
如果是空指针,ip后面会有崩溃的信息的
ztenv 版主 2020-08-06
  • 打赏
  • 举报
回复
引用 4 楼 qybao 的回复:
会不会是函数指针的值不对?
怀疑函数指针不对,或数据破坏了堆栈;没有core、dmesg得不到特别有用的信息;非必现,所以还没有找到有效的办法来定位,不知道兄台有没有什么好的方法?
sevancheng 2020-08-06
  • 打赏
  • 举报
回复
操作了空指针,多加些assert,运行Debug版本
qybao 2020-08-06
  • 打赏
  • 举报
回复
会不会是函数指针的值不对?
qybao 2020-08-06
  • 打赏
  • 举报
回复
引用 2 楼 ztenv 的回复:
[quote=引用 1 楼 qybao 的回复:]段错误,一般是内存冲突 ip是null,要么就是ip是个空指针(没初期化),要么就是取ip出错了,没做出错判断就继续往后执行了 定位一下ip是在哪里定义,在哪里赋值的
哥,这里的ip是指cpu的ip寄存器[/quote]哦,没注意 指令为空,那就是取不到指令,估计哪个步骤的指针跳转出问题了,或者指令区的信息被篡改了

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧