You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4上GDB始终跳过断点问题求助

树莓派4上GDB无法命中断点问题排查

原问题

在运行Raspberry Pi OS的树莓派4上调试C++代码时,GDB无法命中main断点,程序直接运行至结束。操作步骤及输出如下:

编译命令:

g++ -g brainfuck.cpp -o brainfuck -O0

GDB操作及输出:

gdb brainfuck 
# 内部操作
break main
# 输出:Breakpoint 1 at 0xd74: file brainfuck.cpp, line 49.
run
# 输出:
# Starting program: /home/deca/Programming/Cpp/brainfuck 
# Now SP is 3During startup program exited normally.

确认断点已设置:

(gdb) info breakpoint
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x0000000000000d74 in main(int, char**) at brainfuck.cpp:49

已尝试的解决方法

  • 通过包管理器卸载并重新安装GDB
  • 执行set breakpoint auto-hw off关闭硬件断点自动设置
  • 使用编译参数-O0 -g -ggdb -fno-omit-frame-pointer -gcolumn-info编译代码
  • 编写Hello World程序测试断点功能
  • 以root身份运行GDB
  • 在_start处设置断点(b _start)
  • 从源码编译GDB 13.1版本

在Hello World示例上执行strace -f -o syscall.txt gdb ./helloworld得到关键错误:

warning: Could not trace the inferior process.
warning: ptrace: Operation not permitted
During startup program exited with code 127.

编辑补充

已替换为Hello World示例代码(如下),并生成目标文件转储、readelf -a输出信息。即使编译最新GDB 13.1版本,问题仍存在,推测是系统配置或GDB依赖组件问题。

Hello World示例代码:

#include <stdio.h>

int main(int argsc, char* argv[])
{
  printf("Hello World\n");
  return 0;
}

版本信息

  • g++ (Debian 10.2.1-6) 10.2.1 20210110
  • GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
  • Linux raspberrypi 5.15.84-v8+
  • 系统版本:Debian GNU/Linux 11 (bullseye)

问题原因及解决方案

核心原因

从strace输出的ptrace: Operation not permitted可以确定,问题源于系统ptrace权限限制。Debian 11及基于它的Raspberry Pi OS默认启用了kernel.yama.ptrace_scope=1的安全配置,禁止非父进程的ptrace操作,而GDB需要通过ptrace来控制和调试目标程序。

解决方案

  1. 临时生效(重启后失效)
    执行以下命令关闭ptrace限制:

    sudo sysctl -w kernel.yama.ptrace_scope=0
    
  2. 永久生效
    编辑/etc/sysctl.d/10-ptrace.conf文件:

    sudo nano /etc/sysctl.d/10-ptrace.conf
    

    将其中的kernel.yama.ptrace_scope = 1修改为kernel.yama.ptrace_scope = 0,保存后执行以下命令使配置生效:

    sudo sysctl --system
    
  3. 验证
    重新运行GDB调试Hello World程序,设置main断点后执行run,此时应该能正常命中断点。

内容的提问来源于stack exchange,提问作者decabytes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:34:57