2011-07-13 68 views
2

我在Cygwin上使用emacs學習C++,聽說在較早的Unix操作系統中,segfault可以完全破壞關鍵內存。我知道Cygwin的一個想法是讓Windows更像Unix,所以如果我在Cygwin上遇到段錯誤,是否會損壞Windows或Cygwin上的任何內容?如果我在Cygwin中遇到段錯誤,那會有什麼影響?

+1

用戶進程的segfault從不破壞關鍵內存。 –

回答

3

不,它不會損害任何東西。它只會導致觸發segfault的應用程序崩潰。並且可能(取決於您的Windows版本和設置),您會收到令人討厭的彈出消息,通知您崩潰,並詢問您是否要報告。

0

在現代操作系統(包括Linux,Win2K +和MacOSX)中,每個進程只能訪問由操作系統管理的「虛擬內存」區域,並在進程生命期結束後完全清理。導致進程終止的部分進程的內存訪問錯誤僅僅意味着進程嘗試訪問其尚未通知操作系統的部分虛擬地址空間,以及操作系統不想處理的部分訪問錯誤,但這並不影響這一過程之外的任何事情。沒有直接訪問用戶空間進程的「真實」內存,因此你不能真正造成巨大的傷害。

(好吧,我粉飾的東西,如果你不小心觸發了一個API調用來「殺」和你有管理員權限,我想你可能造成一定的傷害。但是你知道我的意思。)

相關問題