1

Qt Creator 2.8.1 IDE を使用して、Ubuntu 12.04 で C++ アプリケーションを開発しています。最近、gcc 4.8.1 と gdb 7.6.1 をインストールしました - どちらも最新です。新しい gcc 4.8.1 をインストールしてから、gdb からこのエラー メッセージが表示されるようになりました。gdb を最新の 7.6.1 にアップグレードしても問題は解決しませんでした。

具体的には、コマンド ラインから gdb 7.6.1 を実行すると、エラー メッセージが表示されません。Qt Creator 環境から gdb 7.6.1 を実行すると、gcc 4.8.1 をインストールする前に Qt Creator に追加した「古い」アプリをデバッグすると、メッセージが表示されません。また、新しいgcc 4.8.1をインストールした後に追加した「新しい」アプリをデバッグするときに、Qt Creator環境からgdb 7.6.1を実行するとエラーメッセージが表示されます。

これは、システムから環境変数を取得する Qt Creator の問題のようです。残念ながら、Qt Creator フォーラムで私の質問に答えてくれる人は誰もいません。私が見つけた最も近い解決策はこのブログにありますが、著者が「gdbをコピーファイルシステムに向けることができる」という意味がわかりません。 http://www.fayewilliams.com/2013/01/31/gdb-unable-to-find-dynamic-linker-breakpoint-function/

編集: gcc の 1 つのバージョンと gdb の 1 つのバージョンしかインストールされていないと思います。

助けていただければ幸いです、ありがとう。

PS エラー メッセージは次のとおりです。動的リンカー ブレークポイント関数が見つかりません。GDB は共有ライブラリ初期化子をデバッグできず、明示的にロードされた動的コードを追跡できません。5 つのライブラリの共有ライブラリ シンボルをロードできませんでした (例: /usr/lib/x86_64-linux-gnu/libstdc++.so.6)。完全なリストを表示するには、「info sharedlibrary」コマンドを使用します。「set solib-search-path」または「set sysroot」が必要ですか?

4

1 に答える 1

1

参照する投稿では、リモート デバッグを行う際に説明する問題について説明しています (主に組み込みシステムで)。私は自分で問題に遭遇し、以下で説明するように並べ替えました。

QtCreator でOptions -> Build & Run -> Kitsに移動し、使用しているキットを選択してsysroot値を入力します。

ここに画像の説明を入力

私の場合、リモート デバッガーがターゲット ファイル システムのローカル コピーを指すようにする必要がありました。デスクトップでローカルにデバッグしている場合、問題はさらに複雑になります。 /に設定してみてください。

于 2014-01-10T15:49:05.003 に答える