完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想通过调试,看一下线程切换时线程栈、主堆栈、各个寄存器的变化,但是不知道怎么操作,谢谢。 此时,进入异常时的自动压栈使用的是进程堆栈,进入异常 handler 后才自动改为 MSP,退出异常时切换回PSP,并且从进程堆栈上弹出数据 我写了个程序,想调试,看一下入栈以后,保存在哪里。但是运行之后,静态数组,也就是线程栈里的内容,和调试时候registers里的内容不一样啊,请问我应该在哪里打断点? #define LED0_PIN GET_PIN(F, 9) |
|
相关推荐
1个回答
|
|
o_thread2(void* parameter)
{ int i = 0; while(1) { i ++; rt_kprintf("Thread 2: %dn", i); rt_thread_mdelay(500); } } /* 线程 1 入口 */ static void to_thread1(void* parameter) { int i = 0; while(1) { i ++; rt_kprintf("Thread 1: %dn", i); rt_thread_mdelay(1000); } } int main(void) { /* 初始化 RT-Thread components */ rt_system_init(); /* 初始化 LED 硬件 */ rt_hw_led_init(); /* 初始化线程 2 */ rt_thread_init(&thread2, "thread2", to_thread2, RT_NULL, &thread2_stack[0], sizeof(thread2_stack), 8, 10); /* 开启线程 2 */ rt_thread_startup(&thread2); /* 初始化线程 1 */ rt_thread_init(&thread1, "thread1", to_thread1, RT_NULL, &thread1_stack[0], sizeof(thread1_stack), 7, 5); /* 开启线程 1 */ rt_thread_startup(&thread1); /* 启动 RT-Thread scheduler */ rt_thread_mdelay(50); rt_system_scheduler_start(); return 0; } 为了查看寄存器值变化,你需要在程序中设置断点。你可以这样做: - 进入调试模式并设置断点:在项目菜单中选择“Debug”,在下拉菜单中选择“Attach to Process”,然后在弹出窗口中选择您的目标设备并单击“Attach”。在调试窗口的左侧列中选择您要查看的文件中的行,然后单击行号旁边的空白行以设置断点。或者,可以在要停止程序的位置单击主工具栏中的“Toggle Breakpoint”按钮。程序将暂停运行并等待调试器中的命令。 - 在断点时查看寄存器值:一旦程序在断点处停止,您可以使用调试器窗口中的寄存器窗口来查看寄存器值。您可以使用主菜单中的“调试”选项卡来打开寄存器窗口。在寄存器窗口中,您可以单击寄存器名称来查看该寄存器的当前值。您也可以将鼠标悬停在寄存器上以查看其值。 - 钩子调试:rt-thread内部提供了一些具有额外函数库的调试技巧,比如“调度钩子” (hook).在调度钩子中,您可以查看当前正在运行的线程,以及它使用的堆栈和寄存器值。这些信息对于查找线程 bug 非常有用。在 RT-Thread 中调度钩子的实现方式因设备而异,具体可以参考 RT-Thread 的相关文档。 总的来说,要查看寄存器值的变化,您需要设置断点,并使用调试工具来查看当前程序状态。在 RT-Thread 中,您可以使用堆栈和寄存器钩子来快速检测线程 bug。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
788 浏览 0 评论
4271 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2529 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2929 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
31479 浏览 11 评论
72933 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 21:50 , Processed in 0.459140 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号