セグメンテーションエラーのデバッグ

セグメンテーションエラーのデバッグ

組み込みLinuxデバイスで実行されているアプリケーションがあり、それを新機能に拡張しています。新機能を使用するにはGLibが必要なので、必要なライブラリをアプリケーションに動的にリンクします。

これを行い、端末でアプリを実行すると、分割エラーが発生します。新しいライブラリを動的にリンクすると、これが発生します。 GDBのバックトレースは、他のカスタムダイナミックリンクライブラリでエラーが発生したことを示しています。残念ながら、次のメッセージで部分的な追跡のみを取得します。

バックトラッキング停止:フレームが保存されていないPC

他の共有ライブラリにのみリンクし、新しいコードを追加しないことに注意してください。カスタムライブラリを静的にリンクすると、競合が消えます。私はメモリ破損が他の場所で発生し、断片化が発生するようにカスタムライブラリを動的にリンクするときに条件(メモリマッピングなど)が適切であると思います。

この問題をさらにデバッグするために使用できる良いツールとスキルを知っている人はいますか?

ベストアンサー1

オンラインで同様のトピックに関する議論がありました。ゲマネそしてルート図フォーラムで答えを見つけることができます。

また、プログラムを実行するときは、まずプログラムが正しいライブラリをロードしていることを確認することをお勧めします。したがって、lddファイルを動的にリンクして、正しいバージョンで実際に実行されていることを確認してから、パスします。valgrindあなたが扱ってはいけない記憶を扱っていることが完全に可能であり、誰かがvalgrindあなたにそれを見せることができるからです。

おすすめ記事