2017-04-11 4 views
0

現在の実行可能ファイルに私のSHELLをリセットし続ける:GDBは、私はGDBに何かを実行しようとするたびに、私は次のエラーメッセージと会ってい

Error: No such file or directory 
During startup program exited with code 127. 

ここに周りの検索、私はこれが発生する可能性があることが分かりましたSHELL変数が正しく設定されていない場合は、と実際にはexport SHELL=/bin/bash --loginを実行してからGDBを実行すると、現在のセッションの問題が解決されます。

しかし、これはすでにecho $SHELLが望ましい値を吐き出しているにもかかわらずです。私は、GDBを実行しようとしているコマンドをよく見ると、それは通常の形式を取ります:

/path/to/mybin -c exec /path/to/mybin --my --opts 

の代わりに、ある

$SHELL -c exec /path/to/mybin --my --opts 

を、GDBは何とか私は渡しています何でも実行を指すようにSHELLをリセットそれが実行を開始する前に。 (私はフォーマットgdb --args /path/to/mybin --my --optsを使ってGDBを起動します。)実行前と実行後のSHELLは正しい値を持っています。 3つの異なる実行可能ファイルを連続してデバッグしようとすると、それら3つの実行可能ファイルはそれぞれ独自のシェルとして使用され、明らかに障害が発生します。 export SHELL=(acceptable shell)を一度実行しても、残りのセッションでは正常に動作します。

シェルのドットファイル(.bashrc、.profileなど)はSHELL変数の参照や変更を行いません。この動作は私には完全に理解できないようです。誰が何が起こっているかもしれないという考えを持っていますか?

私は、Ubuntu 14.04でbash-4.3.11のgdb-7.7.1を使用しています。

編集:私は重要な細部について間違っていました。実行中のexport SHELL=/bin/bash --loginは実際には修正されません。私がそれをしても同じ問題が続く。 (これがまた私のシェルでのデフォルト値であり、どのようなgdbが動作していないとき、私はshow env SHELLを入力する場合、私は参照してください。ただし、export SHELL=/bin/bashを設定すると、問題を修正し、そのログインシェルが何らかの形で問題です、私は推測する。

+0

何かが正しく動作しない場合、 '(gdb)show env SHELL'とは何ですか? –

+0

私は元の質問を編集しました。 'show env SHELL'は'/bin/bash --login'を出力します。 – xanderflood

答えて

0

は、 。問題は、あなたの~/.bashrcとほぼ確実であるが、それはそれはあなたの説明から何であるかを推測するのは難しい

ステップ1:バックで

mv ~/.bashrc ~/.bashrc.save.20170411 

ログアウトとGDBは

だけで正常に動作していることを確認します

手順2:

.bashrc.save.20170411〜〜/ .bashrcの部分をコピーし、GDBが再び動作を停止するまで、logout/loginサイクルを繰り返します。

ステップ3:

今では一部のトラブルを引き起こしている知っている、と.bashrcのチャンクが問題である理由あなたはまだ理解していない場合は、より良い質問をすることができます。

+0

'.bashrc'、' .profile'、 '.bash_profile'を移動して(そして新しいシェルを開いた)、驚いたことに解決しませんでした問題。'/ bin/bash -v'を実行すると、いくつかの起動コマンドがまだ実行されていることがわかりますが、'/etc/.bash * 'や'/etc/bash * '、'/etc/environment'となります。 – xanderflood

+0

@xanderfloodログアウトしたのか、単に新しいウィンドウを開くだけでしたか?また、 'BASH_ENV'と' ENV'の値を見てください。 –

関連する問題