我調試崩潰,我看到以下現象 -在/ proc/PID /地圖ESP不同和二進制
當我GDB和進程,做信息登記,我看到ESP以下值 -
ESP 0xfd2475d0 0xfd2475d0
在這樣做的,其中它被崩潰碼的拆卸,我看到以下 -
81c886a:C7 04 24 2C F9 8A 0C MOVL $ 0xc8af92c,(%ESP)
,如果我在/ proc //地圖檢視地圖文件,我看到堆的地址範圍 -
fff39000-fff59000 rwxp 7ffffffde000 00:00 0 [堆]
顯然,在GDB ESP 0xfd2475d0的值與地圖文件中的堆棧地址不同步。
這可能是墜機的原因。我認爲這應該是因爲我得到SIGSEGV。另外,我該如何解決這個問題?
請協助
請注意,主流操作系統不使用分段,因此它們不捕獲指定堆棧區域之外的訪問(僅適用通常的內存保護)。如果使用線程或sigaltstack,這很重要,在這種情況下,其他一些內存塊將用作堆棧。 – Jester