2012-02-26 62 views
4

這很奇怪的問題,但我想知道如何改變終端信息來對EG-黑客終端消息

[email protected]:~$ cat seg.c 
#include<stdio.h> 
void main() 
{ 
    int* p=9; 
    printf("%x",*p); 
} 
[email protected]:~$ ./a.out 
Segmentation fault 

我想更改消息「段錯誤」別的東西..像「指針失敗」。

背後沒有特定的目的,我只想探索開源的力量。

我試圖在Linux內核源代碼到grep -

[email protected]:~$ cd linux-3.0.1/ 
[email protected]:~/linux-3.0.1$ grep -r "Segmentation fault" * 
Documentation/s390/Debugging390.txt:Program terminated with signal 11, Segmentation fault. 
Documentation/virtual/uml/UserModeLinux-HOWTO.txt: Program received signal SIGSEGV, Segmentation fault. 
[email protected]:~/linux-3.0.1$ 

隨着按摩來了,它應該是在我的系統某處。

我想,我在錯誤的地方尋找。 在此先感謝。

+2

該消息由您的shell打印。 – Mat 2012-02-26 20:02:25

+1

分段錯誤並不總是指針失敗。例如,在x86中,從用戶空間使用'hlt'指令會導致分段錯誤(導致GPF轉換爲分段錯誤)。 – ninjalj 2012-02-26 23:42:36

回答

2

正如Mat評論的那樣,消息來自您的shell。由於您的shell可能是免費軟件(可能是bash,但您也可以使用其他一些軟件,我喜歡zsh),因此您可能需要花些時間對其進行相應的修補。

但我相信你不應該那樣做,否則你將無法解釋你的系統正在做什麼。例如,如果修改後的shell輸出「Pointer failure」,沒有人會理解這裏提到的問題。

在Linux中學習通常的東西似乎簡單得多...

+0

我grep並替換所有「分段錯誤」消息/bash-4.1源代碼編譯和安裝....但不起作用。 當我再次grep我發現消息「分段錯誤」在一些二進制文件,如'二進制文件口袋/ es.gmo匹配 po/ro.po:msgstr「Eroare de segmentare(分段錯誤)」' ...現在如何我可以用二進制文件替換消息嗎? – Vikram 2012-02-27 14:10:54

+0

它與國際化功能有關。 – 2012-02-27 16:57:09