newticigam 2024-05-20 14:05 采纳率: 0%
浏览 4

linux gdb调试 PC跑飞

ubuntu 14.04 LTS 上gdb调试 STM32F446RET6 出现如下问题

  NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure); //从此处断点执行;
(gdb) n
Program received signal SIGTRAP, Trace/breakpoint trap.
0xffffffdc in ?? ()
Cannot access memory at address 0xffffffdc
(gdb) p/x $pc
$1 = 0xffffffdc

经分析是
ldr r4,=0xE000E100
mov r0,#0
mov r1,#1<<28
str r1,[r4,r0] @从此句断点按c继续执行时, 必现此问题;

目前具体原因不明, 应该是gdb的缺陷?

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-05-20 14:05
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题: 您在Ubuntu 14.04 LTS上使用GDB调试STM32F446RET6时遇到了一个问题,当执行到某个断点后,程序接收到SIGTRAP信号,并且无法访问地址0xffffffdc,导致调试过程中断。您希望找到这个问题的原因,并解决它。

    问题出现原因

    1. 内存访问错误:程序试图访问一个非法的内存地址(0xffffffdc),这通常是由于指针错误或内存越界引起的。
    2. GDB调试器问题:可能是GDB在处理STM32架构时存在兼容性问题,导致调试过程中出现异常。
    3. 代码问题:您提到的汇编代码中的ldr, mov, str指令可能存在问题,导致程序执行到某个点时出现错误。

    问题解决方案

    1. 检查代码:首先检查您的C代码和汇编代码,确保没有错误的指针操作或内存访问。
    2. 更新GDB:尝试更新GDB到最新版本,看是否解决了与STM32架构的兼容性问题。
    3. 使用其他调试工具:如果GDB的问题无法解决,可以尝试使用其他STM32专用的调试工具,如ST-Link Utility。
    4. 硬件检查:检查STM32F446RET6的开发板是否有硬件问题,这可能影响调试过程。

    提供代码: 由于问题可能与具体的代码实现有关,这里无法提供具体的代码。但是,您可以检查以下代码段:

    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_Init(&NVIC_InitStructure); // 检查此处是否有问题
    

    代码运行方式

    1. 确保您的开发环境设置正确,包括编译器、链接器和调试器。
    2. 使用GDB启动调试会话,并加载您的程序。
    3. 设置断点,并尝试逐步执行以查找问题。

    代码预期运行结果: 理想情况下,程序应该能够在不触发SIGTRAP信号的情况下正常运行,并且能够正确地访问内存。

    推荐相关链接

    请注意,这些链接可能需要您自行搜索以找到最新的资源和信息。

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 5月20日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 游戏盾如何溯源服务器真实ip?
  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓