Linux上程式執行一段時間後,段錯誤,bt得其呼叫棧,函式A呼叫的下層函式棧損壞。我進入A函式棧楨,檢視eip,ebp暫存器,結合彙編分析,各項值都正確,實在是沒法了,還求各位大神指點一下?

時間 2021-06-09 03:20:07

1樓:brooks

如果問題是畢現的,就非常容易解決。

你這裡是段錯誤,不是棧溢位。一般只有深層遞迴或者大的區域性變數才會有棧溢位。

根據你的描述,eip被踩掉的可能比較大。另外sigsegv時,檢視寫入的非法位址和寫入的值是什麼也很關鍵。

其他的一些建議,可以參考一下:

1. 所有的編譯警告都開啟。

2. 檢查一下calltrace,函式呼叫合乎邏輯,可以初步判斷eip是否被踩寫。

3. 嘗試所有的不安全的記憶體操作strcpy, sprintf, memcpy,改用strncpy等安全版本替換。

4. 檢查所有的暫存器值是否是合法位址,嘗試將它們指向的位址附近的記憶體dump出來,看是否有熟悉的結構或者字串。

5. 檢查pack位元組對齊是否一致,特別是用到第三方庫的情況。

6. 是否有整數溢位,signed/unsigned是否有不安全的混用。...

2樓:余天公升

我遇到過這樣比較難發現的情況:char cc;

scanf( "%d", &cc );scanf拿上來的是乙個int,然後寫入cc就越界了。

工作一段時間後想呆在家學習一段時間技術再出去工作可行嗎?

如何先生 如果你想窩在家學習,可以,不過你得考慮幾個問題。你是要自學還是要報培訓班?自學你的自律性能不能支撐你學會學懂學透一門技術?報班學,你有沒有考慮這個技術是否能讓你找到乙個你所期望的工作?培訓出來後可能會有很長一段時間找不到工作,你做好沒做好這個心理準備?最後,也是最重要的一點,你學一門技術是...

電腦開機一段時間後自動關機?

貝藝科技 1 從您排除問題的手法判斷總體來說還是比較專業的,大體上和我們平時操作差不太多!2 電腦自動斷電情況比較複雜,部件故障 外接短路 溫度過高等反饋到主機板過電保護主機板就會自動斷電重啟或斷電。3 建議先排除系統軟體問題 看能否重灌系統 其次採用使用最小系統法和隔離法來排除 由於硬碟 光碟機 ...

反覆地聽一段英語材料,會在一段時間後發現自己完全聽懂了這段材料,耳朵像被打通了一樣?

Jakson 馬雲應該算是二語習得的典型人物,從十多歲就每天早上騎車去西湖邊給老外免費當導遊混出來的。俞敏洪應該是傳統教育學出來的。從兩人的演講中可以看出馬雲的詞彙量不如俞敏洪,但口語溝通應用能力卻遠勝於他。不過考雅思 托福馬雲可能就考不贏俞敏洪。這就是二者的區別。 san zhang 謝 Ludw...