Windows 10启动GDB时触发ntdll!RtlWaitOnAddress SIGSEGV错误如何解决?
解决Windows 10下启动GDB触发SIGSEGV(段错误)的问题
你遇到的错误信息如下:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffe7c493466 in ntdll!RtlWaitOnAddress () from C:\windows\SYSTEM32\ntdll.dll
可以尝试以下几种解决方法:
更新GDB到兼容版本
旧版GDB对Windows 10(尤其是1903及以后的系统更新)的适配存在bug,直接升级到GDB 10.1及以上版本,多数情况下能解决这类ntdll函数调用的段错误问题。临时关闭杀毒软件实时保护
Windows Defender或第三方杀毒软件的实时监控可能会拦截GDB的底层系统调用,导致触发段错误。先关闭实时保护再启动GDB测试,确认问题后把GDB程序加入杀毒软件的信任列表即可。以管理员身份运行GDB
右键点击GDB启动程序或终端窗口,选择「以管理员身份运行」。系统权限限制可能导致GDB无法正常调用ntdll中的核心函数,提升权限后可解决这类问题。修复系统文件完整性
打开管理员权限的命令提示符,执行sfc /scannow命令,扫描并修复损坏的系统文件(包括ntdll.dll)。系统文件损坏也可能导致GDB调用时出错。调整GDB启动参数
启动GDB时添加参数:gdb -ex "set startup-with-shell off",禁用启动时的shell初始化。部分异常的shell环境会干扰GDB初始化流程,触发段错误。
内容的提问来源于stack exchange,提问作者SeongGeunLee
相关产品推荐
相关产品推荐

