2020/12/28付けで タグ名GDBで
「(gdb)runを実行した際にNew Thread〜と表示されて、キーボードを
受け付けなくなる」
という質問をされた方がおられました。この質問に対して、
break [ソースファイル名]:[行番号] として実行してください、
という回答があり、解決済となっていますが、
先日当方でも全く同一と思われる症状が発生し、残念ながらこの方法では
効果がなかったので、新たに、質問をいたします。
当方の状況は次のとおりです。
MacBookPro Big Sur 11.4 (gdbをインストールした時は11.3.1)
gdbはHomebrewでインストール
因みに、当方ではlinux(Ubuntu 20.04 LTS) にも gdb ddd eclipseを
インストールしていて、linuxでは3者ともに全て問題なく動作しています。
gdbを起動し、ブレークポイントを設定して、runすると
[New Thread 0x2003 of process 1921]
と出て、以降ctrl+z以外、反応しなくなる
という状況です。
macの方ではコンパイル時に-g3オプションをつけると、実行形式ファイルの他に、
[実行形式ファイル名].dSYM
というデバッグ用情報を保持したファイルをもう1つ作り出すようで、
gdbを起動すると
/Users/....../.gdbinit:1: Error in sourced command file:
No symbol table is loaded. Use the "file" command.
Reading symbols from バイナリファイル名...
Reading symbols from /Users/....../バイナリファイル名.dSYM/Contents/Resources/DWARF/バイナリファイル名...
のように出力してきて、.dSYMファイルを読んでいるようです。
これを読み込むと、lコマンドでソースをプリントできるようになります。
.gdbinitはホームディレクトリ直下にあり
set startup-with-Shell off
の1行が記述されています。
linuxでは、こんなことはなく直ぐに動作しますので、
gdb共通部分での問題ではなく、mac環境特有の部分に問題があるものと思われます。
macにgdbをインストールした後、キーチェーンアクセスappで自己署名証明書を作成し、
gdb-entitlement.xml もバイナリと同じカレントディレクトリ内に作成し
codesign --entitlements gdb-entitlement.xml -fs gdb-cert $(which gdb)
で資格情報の付与とコード署名を行なっています。
これ以上の情報は、Google等で検索しても、日本語と英語の記事で合致する
ものが見つかりません。
そこで質問をさせていただきます。
当方と同じ環境で問題なく動作している方がおられましたら、何かお気づきの点、
当方と異なる動作をする点などありましたら何でも結構ですので、
ご教示いただけると幸いです。
なお、macOSの版数は、以前の版でも結構です。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー