|
|
1
2
更新后编辑
我没有提到
或使用
|
|
|
2
1
一些想法:
如果
PMG有一个很好的观点。
另外,考虑第一个参数的类型
|
|
|
3
1
代码中的变化是在内存中移动其余代码。我的猜测是代码的其他部分(这里没有列出)正在攻击某个随机位置;在第一种情况下,该位置包含一些关键的内容,在第二种情况下则不包含。 这些是最糟糕的问题。祝你好运。 *也许不是最糟糕的——如果是多个线程之间的争用条件(每周只出现一次),情况可能会更糟。还是不是我最喜欢的那种虫子。 |
|
4
1
如果我不将变量btmpsms初始化为某个值,就会出现问题。 我也意识到问题不在打印纸上。它是ITOA函数。它让我检查,即使我不认为这是问题所在,当我评论ITOA函数时,整个代码都工作了。 所以我就这样做了:
这是我得到的ITOA函数:
qponmlkjihgfedcba9876543210123456789 abcdefghijklmnopqrstuvwxyz“[35+(tmp_value-value*base)]; }while(值);
|
|
|
5
0
有什么价值
如果大于99,那么你就超过了
如果这不起作用,那么使用IAR非常好的调试器-我将在
或者作为一个快速的n-dirty故障排除,尝试将数组大小调整为较大的值(可能是8),然后看看会发生什么。 |
|
6
0
bsmsindex的价值是什么? 如果大于99,则转换为字符串时将为三位数。当零终止时,它将是四个字符,但您只为btmpsms分配了三个字符,因此可能会覆盖空值,并且printf将尝试打印btmpsms之后的任何内容,直到下一个空值。真的,这可以访问任何东西。 |
|
7
0
试着用索引分解这个区域=
|
|
|
Bob Dole · C中的strstr问题 2 年前 |
|
|
TRElec · STM32:代码的执行似乎取决于它在闪存中的位置 2 年前 |
|
|
Hasan Altay · uint8_t到C中的结构 2 年前 |
|
|
ApAp · stm32中的Dlms-cosem协议 3 年前 |