在WinCE的5.0 C++應用追捕堆棧溢出崩潰,將範圍縮小到一個任何人在WinCE上sscanf()堆棧使用有問題?
_stscanf(ASTRING,_T( 「%* S%02D \ n」 個),& aNumber的);
在模式對話框的長鏈末尾調用,值爲_T(「LEVEL 01」)。
分析我們的異常處理堆棧幀記錄和比較來自上一個存儲的棧幀的棧指針。在拋出異常點的SP似乎顯示了_stscanf()的堆棧使用量的瘋狂數量......
...足夠瘋狂,我覺得我需要驗證它。經過幾天的黑客攻擊後,我想出了一個測試例程,爲_stscanf()執行高水位類型堆棧使用測量。
我們爲兩個不同的CE目標交叉編譯:瑞薩/日立SH4上的CE 4.2和飛思卡爾iMX32(ARM1136內核)上的CE 5.0,以及桌面Windows模擬器。
堆棧使用的_stscanf()調用(約):
桌面60
CE 4.2 SH4 9252
ARM的9280
CE 5.0這是正確的,在CE堆棧9K? !! ??
其他任何人都遇到過這樣的事情嗎?