[問題] local variable在其它地方被修改?

看板C_and_CPP (C/C++)作者 (baker)時間13年前 (2012/11/14 20:28), 編輯推噓4(407)
留言11則, 8人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Android平台裡面某個library 問題(Question): 在function裡面,宣告一個區域變數 double mTime 並指定某個值給它, 然後去呼叫其它function回來後,mTime的值就變了。 請問有高手遇到這種情況麻? 或者是有什麼工具或方法可以找到一點線索。 請給才疏學淺的小弟我一點方向,感謝各位前輩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.34.96.93

11/14 20:29, , 1F
呃, 你的 Android 是寫 C/C++?
11/14 20:29, 1F

11/14 20:31, , 2F
呃..不好意思,應該要加linux的,我昏了,SORRY
11/14 20:31, 2F

11/14 20:35, , 3F
太多可能性了 沒code只能隔空抓藥
11/14 20:35, 3F
※ 編輯: sunrise0406 來自: 1.34.96.93 (11/14 20:48)

11/14 21:04, , 4F
沒有部分 code 嗎?
11/14 21:04, 4F

11/14 21:33, , 5F
把 mTime 位址記起來, 去你的 "其他 function" watch
11/14 21:33, 5F

11/16 15:20, , 6F
這種現象通常不就是第二層function stack寫超過了? 例如
11/16 15:20, 6F

11/16 15:21, , 7F
local array overflow; 如果debugger有break at access
11/16 15:21, 7F

11/16 15:21, , 8F
可能會容易一點....XD
11/16 15:21, 8F

11/18 17:45, , 9F
第一個想法就是buffer overflow
11/18 17:45, 9F

11/18 17:45, , 10F
不過發生之後,程式應該會死給你看才對
11/18 17:45, 10F

11/19 06:02, , 11F
先在外面的ide測試過再放入android吧 = =
11/19 06:02, 11F
文章代碼(AID): #1GeuwBys (C_and_CPP)
文章代碼(AID): #1GeuwBys (C_and_CPP)