2017-03-31 58 views
0

我正在嘗試使用gdb調試器來調試應用程序。此應用程序有一些特定的環境要求。在開始gdb之前,我按照自己想要的方式設置環境,然後打開gdb。如何阻止gdb讀取「.cshrc」?

乍一看,它看起來像一切都很好。命令show environment顯示了我想要的所有變量,但是當我使用run命令時,它們神奇地被重置!

我做了一些挖掘,發現gdb自動調用.cshrc文件並重新加載所有的環境變量,但似乎沒有任何方法可以阻止它!我怎樣才能阻止這種情況發生?

如果從gdb調用.cshrc文件並跳過它,有沒有辦法檢查.cshrc文件的內部?這幾天我一直在掙扎,這令人難以置信的惱人。

+1

你錯了:GDB不讀你的'〜/ .cshrc' - 你的'$ SHELL'確實是這樣。並且在非交互式運行時防止你的shell與環境混雜在一起是正確的答案。 –

回答

0

到目前爲止,我找到了一個解決方案,但我不確定這是否會破壞服務器上的其他內容。

我添加以下代碼的.cshrc文件,現在它中止時,它是由GDB稱爲:

if (! $?prompt) then 
    exit 
endif 

該代碼主要是告訴它放棄,如果它是由超過一個交互的shell其他一些所謂的。它現在起作用了,但我有一種感覺,我可能會發現這會在未來破壞別的東西。