打印
[开发工具]

调试指针不跳转 0x00

[复制链接]
693|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
updownq|  楼主 | 2024-7-17 23:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在启动文件中更改堆栈大小:




比如图中是512k,可根据硬件情况将堆栈值改大一些。这个小操作目前解决了困扰我的三个问题:

(1)局部变量设置较多,调试时会在HardFault_Handler中的B.   处陷入死循环;

(2)仿真调试时,会在0x000000XX  Mov r0,r0附近一直爬啊爬,不跳转;

(3)仿真调试时,如果选择step over或者Run to Cursor line,,它在某些嵌套了好几层的函数的地方并不会乖乖滴跳过去,而是倔强地进入函数里面单步执行。


使用特权

评论回复
沙发
kzlzqi| | 2024-7-29 15:29 | 只看该作者
通常启动文件是一个汇编文件或者C文件,文件名可能是 startup_stm32f4xx.s、startup_stm32f4xx.c 或类似的名字,具体取决于您的开发环境和所使用的微控制器系列。

使用特权

评论回复
板凳
范德萨发额| | 2024-7-29 15:40 | 只看该作者
在调试时,如果程序陷入死循环或者不能跳转,通常是由于堆栈溢出或者堆栈损坏造成的。增加堆栈大小可以减少这种情况的发生,因为更大的堆栈空间可以容纳更多的局部变量和调用信息。

使用特权

评论回复
地板
elephant00| | 2024-7-29 21:33 | 只看该作者
指针未初始化

使用特权

评论回复
5
两只袜子| | 2024-7-29 21:33 | 只看该作者
程序中的逻辑错误可能导致指针未能按照预期的方式被修改。检查所有修改指针值的代码,确保逻辑正确无误。

使用特权

评论回复
6
jcky001| | 2024-7-29 21:34 | 只看该作者
调试器设置或错误

使用特权

评论回复
7
cr315| | 2024-7-29 21:34 | 只看该作者
如果其他部分的代码(如缓冲区溢出)损坏了内存,它可能会影响到指针的值。

使用特权

评论回复
8
申小林一号| | 2024-7-29 22:35 | 只看该作者
感谢分享

使用特权

评论回复
9
喂什么玩意| | 2024-7-31 11:42 | 只看该作者
根据硬件情况,将堆栈值改大一些。可以将堆栈大小从 2048 字节增加到 8192 字节:

使用特权

评论回复
10
AdaMaYun| | 2024-7-31 14:19 | 只看该作者
它在某些嵌套了好几层的函数的地方并不会乖乖滴跳过去,而是倔强地进入函数里面单步执行。

使用特权

评论回复
11
gaonaiweng| | 2024-8-29 12:15 | 只看该作者
如果您使用的是汇编启动文件,可以直接在其中找到定义堆栈大小的部分。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

3171

帖子

1

粉丝