4

サードパーティのライブラリをテストしていますが、クラッシュします。クラッシュの理由を知りたいと思ったとき、私の gdb は利用可能なデバッグ シンボルがないことを教えてくれました

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb53ffb70 (LWP 3722)]
0x00172a89 in tsip_transac_send () from /usr/local/lib/libtinySIP.so.0

gdb コンソールでbt fullを発行すると、以下のような一連の行が表示されます

#0  0x00172a89 in tsip_transac_send () from /usr/local/lib/libtinySIP.so.0
No symbol table info available

Makefile の CFLAGS を確認した後、ライブラリを再コンパイルしました。値は常に問題ありませんでしたが、とにかく再コンパイルしました

CFLAGS = -g -O2

同じ運でテストを再度実行しましたが、共有ライブラリのデバッグ シンボルはありませんでした。

ここで何が欠けていますか?

Centos 6.0 を使用しており、以前に Opensuse にライブラリをインストールしましたが、この問題は発生しませんでした。おそらく、Centos のインストールに関係している可能性があります。

誰かが気になる場合に備えて、私は Doubango のライブラリで webrtc2sip をテストしています。

編集: デバッグ シンボルが正しく読み込まれています

(gdb) info sharedlibrary
From        To          Syms Read   Shared Object Library
0x002fb830  0x0031339f  Yes (*)     /lib/ld-linux.so.2
0x00115040  0x00120028  Yes         /usr/local/lib/libtinySAK.so.0
0x00133f30  0x0018b378  Yes         /usr/local/lib/libtinySIP.so.0
0x001d8ac0  0x00201b98  Yes         /usr/local/lib/libtinyNET.so.0
0x00215dd0  0x0023f638  Yes         /usr/local/lib/libtinyDAV.so.0
0x0024eec0  0x00261728  Yes         /usr/local/lib/libtinyMEDIA.so.0
0x0026bb00  0x002774d8  Yes         /usr/local/lib/libtinyHTTP.so.0
0x002ae340  0x002b0358  Yes         /usr/local/lib/libtinyXCAP.so.0
0x002b3990  0x002b8d18  Yes         /usr/local/lib/libtinySMS.so.0
0x002be630  0x002c9388  Yes         /usr/local/lib/libtinyMSRP.so.0
0x002de240  0x002e8e18  Yes         /usr/local/lib/libtinySDP.so.0
0x00323060  0x00345778  Yes         /usr/local/lib/libtinyRTP.so.0
4

3 に答える 3

3

どうやら gdb のバグのようです。

Centos 6 のリポジトリには、バージョン7.2-56.el6がプリコンパイルされています。(ソースをコンパイルして) ​​最新バージョンの gdb に更新したところ、現在は機能しています。

ご協力いただきありがとうございます。

于 2013-02-07T18:56:22.200 に答える
2

確認してくださいfile /usr/local/lib/libtinySIP.so.0strippedと表示されている場合は、ライブラリのビルド プロセスを確認してください。stripデバッグ シンボルを削除するために手動で呼び出すことができます。

于 2013-02-07T15:31:08.307 に答える
-3

コンパイルフラグが競合しているようです。私は専門家ではありませんが、-gフラグ(デバッグシンボルを生成するため)が-O2フラグ(最適化パラメーター)と混合されているようです。

just-gを使用して、結果を投稿してみてください。

于 2013-02-07T15:29:21.387 に答える