のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

gdbで"No symbol table is loaded."

*.soのフォルダ位置を確認する。

(gdb) shell ls
AndroidManifest.xml assets bin gen jni libs res src
(gdb) shell ls ./obj
convert-dependencies.sh local
(gdb) shell ls ./obj/local
armeabi armeabi-v7a
(gdb) shell ls ./obj/local/armeabi-v7a
app_process gdb.setup libc.so libMyLib.so objs-debug

サーチパスをセットする。

(gdb) show solib-search-path

(gdb) set solib-search-path ./obj/local/armeabi-v7a

Reading symbols from ./obj/local/armeabi-v7a/libc.so...(no debugging symbols found)...done.
Loaded symbols for ./obj/local/armeabi-v7a/libc.so
Reading symbols from ./obj/local/armeabi-v7a/libMyLib.so...done.
Loaded symbols for ./obj/local/armeabi-v7a/libMyLib.so
すごいいっぱいほかのsoのメッセージがでる。

(gdb)p Java_jp_co_MyLib_func
$1 = {void (
JNIEnv *, jobject, jint)} 0x5b0e8050
(gdb) b Java_jp_co_MyLib_func
Breakpoint 1 at 0x5b0e805c: file jni/MyLib.c, line 43.

(gdb)info functions

(gdb)info share

(gdb)info files

Symbols from "obj/local/armeabi-v7a/app_process".
Remote serial target in gdb-specific protocol:
Debugging a target over a serial line.
While running this, GDB does not access memory from...
Local exec file:
`obj/local/armeabi-v7a/app_process', file type elf32-littlearm.
Entry point: 0x8bd0
0x00008114 - 0x00008127 is .interp
0x00008128 - 0x00008284 is .hash
0x00008284 - 0x00008584 is .dynsym
0x00008584 - 0x0000899e is .dynstr
0x000089a0 - 0x00008a68 is .rel.plt
0x00008a68 - 0x00008a90 is .rel.dyn
0x00008a90 - 0x00008bd0 is .plt
0x00008bd0 - 0x00008fcc is .text
0x00008fcc - 0x00009147 is .rodata
0x00009148 - 0x00009190 is .ARM.exidx
0x0000a000 - 0x0000a008 is .preinit_array
0x0000a008 - 0x0000a010 is .init_array
0x0000a010 - 0x0000a018 is .fini_array
0x0000a018 - 0x0000a020 is .ctors
0x0000a020 - 0x0000a040 is .data.rel.ro
0x0000a040 - 0x0000a128 is .dynamic
0x0000a128 - 0x0000a1b0 is .got
0x0000a1b0 - 0x0000a1c0 is .bss

(gdb) maint info sections
Exec file:
`/obj/local/armeabi-v7a/app_process', file type elf32-littlearm.
0x00008114->0x00008127 at 0x00000114: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00008128->0x00008284 at 0x00000128: .hash ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00008284->0x00008584 at 0x00000284: .dynsym ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00008584->0x0000899e at 0x00000584: .dynstr ALLOC LOAD READONLY DATA HAS_CONTENTS
0x000089a0->0x00008a68 at 0x000009a0: .rel.plt ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00008a68->0x00008a90 at 0x00000a68: .rel.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00008a90->0x00008bd0 at 0x00000a90: .plt ALLOC LOAD READONLY CODE HAS_CONTENTS
0x00008bd0->0x00008fcc at 0x00000bd0: .text ALLOC LOAD READONLY CODE HAS_CONTENTS
0x00008fcc->0x00009147 at 0x00000fcc: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00009148->0x00009190 at 0x00001148: .ARM.exidx ALLOC LOAD READONLY DATA HAS_CONTENTS
0x0000a000->0x0000a008 at 0x00002000: .preinit_array ALLOC LOAD DATA HAS_CONTENTS
0x0000a008->0x0000a010 at 0x00002008: .init_array ALLOC LOAD DATA HAS_CONTENTS
0x0000a010->0x0000a018 at 0x00002010: .fini_array ALLOC LOAD DATA HAS_CONTENTS
0x0000a018->0x0000a020 at 0x00002018: .ctors ALLOC LOAD DATA HAS_CONTENTS
0x0000a020->0x0000a040 at 0x00002020: .data.rel.ro ALLOC LOAD DATA HAS_CONTENTS
0x0000a040->0x0000a128 at 0x00002040: .dynamic ALLOC LOAD DATA HAS_CONTENTS
0x0000a128->0x0000a1b0 at 0x00002128: .got ALLOC LOAD DATA HAS_CONTENTS
0x0000a1b0->0x0000a1c0 at 0x000021b0: .bss ALLOC
0x00000000->0x00000012 at 0x000021b0: .comment READONLY HAS_CONTENTS
0x00000000->0x00000018 at 0x000021c4: .note.gnu.gold-version READONLY HAS_CONTENTS
0x00000000->0x00000032 at 0x000021dc: .ARM.attributes READONLY HAS_CONTENTS

(gdb) show auto-solib-add
Autoloading of shared library symbols is on.