linux 排查段错误,利用dmesg排查段错误原因(Geant 4程序)

参考博文:

下面的内容为博主在Geant 4程序设计中遇到的问题。

问题描述

Geant 4 分析闪烁体荧光光子的相关问题,程序计算到某一个event时,程序自动终止,输出错误信息“段错误(核心已转储)”。

在单个程序的“段错误”问题分析中,可以查看core文件(linux系统默认不生成core文件,采用ulimit -c 1024 命令开启并设置文件最大大小),但是在Geant4程序中没有core文件输出(具体原因不知)。因此,在Geant 4程序报错时,输入dmesg,打印错误信息:

$ dmesg

$ exampleB4d[12964]: segfault at 78 ip 00007f2c489cf556 sp 00007f2c3d76b070 error 4 in libG4materials.so[7f2c4898e000+7c000]

反汇编文件内容:( 重点查看前两篇参考文章)

0000000000054530 <_zn25g4materialpropertiestable11getpropertyeib>:

54530:41 57 push %r15

54532:41 56 push %r14

54534:41 55 push %r13

54536:41 54 push %r12

54538:55 push %rbp

54539:53 push %rbx

5453a:89 f3 mov %esi,%ebx

5453c:48 81 ec 98 01 00 00 sub $0x198,%rsp

54543:64 48 8b 04 25 28 00 mov %fs:0x28,%rax

5454a:00 00

5454c:48 89 84 24 88 01 00 mov %rax,0x188(%rsp)

54553:00

54554:31 c0 xor %eax,%eax

54556:48 8b 47 78 mov 0x78(%rdi),%rax # 错误指针所知位置

5455a:48 85 c0 test %rax,%rax

5455d:74 69 je 545c8 <_zn25g4materialpropertiestable11getpropertyeib>

5455f:48 8d 77 70 lea 0x70(%rdi),%rsi

54563:48 89 f1 mov %rsi,%rcx

54566:eb 14 jmp 5457c <_zn25g4materialpropertiestable11getpropertyeib>

54568:0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)

解决方法

对于博主遇到的问题,解决方法是,把调用nist的材料material改为自定义的材料。

标签:dmesg,00,Geant,48,mov,排查,push,rax

来源: https://blog.csdn.net/budong_2017/article/details/110289142

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统的运维排查错误思路主要包括以下步骤: 1. 状态检查:首先,需要检查服务器的硬件和网络状态,包括CPU、内存、硬盘等是否正常运行。通过查看系统日志和执行命令如top、dmesg、ifconfig等,可以获取相关信息。 2. 进程和服务检查:检查系统中运行的进程和服务是否正常。使用命令如ps、netstat、systemctl等,查看是否有异常或启动失败的进程,以及监听的端口是否正常。 3. 网络连接检查:通过使用命令如ping、traceroute、telnet等,检查服务器与其他主机之间的网络连接是否正常。可以排查网络问题,如是否能够正常访问互联网、与其他主机是否能够建立连接等。 4. 文件系统检查:检查文件系统是否存在错误或损坏。使用命令如df、du、fsck等,查看文件系统的使用情况和磁盘空间是否足够,以及修复文件系统错误。 5. 日志分析:仔细分析系统和应用程序的日志,以找出可能的错误原因。特别关注错误日志和警告信息,定位问题所在并解决。 6. 配置文件检查:检查系统和应用程序的配置文件是否正确。例如,检查网络配置、服务配置、权限配置等。如果有错误配置,及时进行修复。 7. 安全检查:检查系统是否受到了恶意攻击或存在安全漏洞。通过使用命令如netstat、grep、iptables等,查看网络连接情况和日志,及时发现并处理安全问题。 8. 性能优化:分析系统性能问题,查找系统资源的瓶颈。通过使用命令如top、vmstat、sar等,了解系统的负载情况和性能指标,进行相应的优化。 9. 更新和升级:及时更新系统和应用程序的补丁和版本,修复已知的漏洞和问题,提高系统的稳定性和安全性。 总结来说,对于Linux系统的运维排查错误,需要综合利用各种命令和工具,结合分析日志和配置文件,找出问题的根源,然后采取相应的措施解决问题。同时,定期进行系统维护和更新,保持系统的稳定性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值