erlangのNIFという機能を使ってelixirコードからC言語の関数を呼び出しているのですが,
gdbでバックトレースした際に,共有ライブラリ内でsegmentation faultしていると考えられるときに共有ライブラリの中身を詳しく見る方法はあるのでしょうか.
terminal
1$ gdb /usr/lib/erlang/erts-10.5.6/bin/beam.smp -core core -d /home/me/src 2 3Core was generated by `/usr/lib/erlang/erts-10.5.6/bin/beam.smp -- -root /usr/lib/erlang -progname erl'. 4Program terminated with signal SIGSEGV, Segmentation fault. 5#0 0x00007f8a06466bbc in hoge () from sharedlib.so 6[Current thread is 1 (Thread 0x7f8a0c9f3700 (LWP 7666))] 7(gdb) bt 8#0 0x00007f8a06466bbc in hoge () from sharedlib.so 9#1 0x00007f8a079ba3db in nif_hoge (env=0x7f8a0c9f2d80, argc=1, argv=0x7f8a0f708340) at src/node_nif.c:177 10#2 0x00005611dc6b30ea in process_main () 11#3 0x00005611dc6a35f9 in ?? () 12#4 0x00005611dc923a4d in ?? () 13#5 0x00007f8a5042d6db in start_thread (arg=0x7f8a0c9f3700) at pthread_create.c:463 14#6 0x00007f8a4ff4e88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
sharedlib.soは自身で作ったものではなくダウンロードしてきてその中にあったものです.
デバッグの方法などはこのページを参考にしました.
よろしくお願いいたします.
あなたの回答
tips
プレビュー