美文网首页我爱编程
KEIL调试指针越界的方法

KEIL调试指针越界的方法

作者: Lazy_Caaat | 来源:发表于2018-06-24 11:34 被阅读0次

用KEIL写STM32代码,经常遇到操作指针失误,引起越界覆盖数据的问题,调试方法如下:

假设我们有个结构体的参数莫名其妙的被修改了,去工程中搜索KEIL的“.map”文件,查找你被覆盖的变量位置。这里假设inf这个结构体被误操作了,在map文件中搜索该结构体名,找到该结构体。

一般来说都是前面的数据覆盖了后面的数据,所以重点排查前面的变量在何时被操作,是否正确的被操作,这时一般就可以找到问题的根源了。

还有一种方法:

首先重定向printf函数到串口X,哪个串口方便用哪个,网上教程很多。

printf("%s ,%d k %d\r\n",__FILE__,__LINE__,inf.obdinfo.key_status);

将这句话插在你觉得可能有错误的地方,看看这个变量到底在哪里被修改了,通过前后“卡”代码段的方式将代码范围步步缩小,直到找到错误发生的地方。

相关文章

  • KEIL调试指针越界的方法

    用KEIL写STM32代码,经常遇到操作指针失误,引起越界覆盖数据的问题,调试方法如下: 假设我们有个结构体的参数...

  • 内存调试一些方法

    内存调试一些方法:1、signal SIGABRT:越界,访问没有初始化的地址或者错误地址方法一:image lo...

  • 13 数组常见问题

    数组索引越界异常 空指针异常

  • 2018-02-09

    在keil与Proteus联通调试时候,按着步骤进行可是到最后

  • 通过Keil MDK下载内存数据

    在使用Keil调试过程中,在某些情况下需要下载内存数据,以做比对、备份等用途, 而Keil通过command窗口,...

  • iOS常见崩溃

    数组越界 1.数组中取值时越界 2.往数组中添加nil 野指针 出现野指针的情况 1.用assign修饰一个OC对...

  • 开发中一般错误分析

    ?两种崩溃调试方法 1、在控制台找reason 2、设置全局断点,定位到导致崩溃的代码 ?数组越界 reason:...

  • go语言值传递与指针传递

    go语言指针 go语言作为静态编译型语言,具有指针类型,但是不提供对指针的移位危险操作,防止指针的越界等问题。 g...

  • iOS开发中崩溃的几种情况

    数组越界 1.数组中取值时越界2.往数组中添加nil 野指针 出现野指针对情况1.用assign修饰一个OC对象2...

  • keil中使用stlink调试stm32点击运行时程序没跑起来

    在keil中使用stlink调试时,点击运行,程序始终跑不起来,可能的运行是:在上一次调试中,有程序运行错误,例如...

网友评论

    本文标题:KEIL调试指针越界的方法

    本文链接:https://www.haomeiwen.com/subject/tbmjyftx.html