GDB (на Android) имеет проблемы с разрешением текущего местоположения с использованием «где» - PullRequest
2 голосов
/ 01 сентября 2011

Попытка определить местоположение последней строки с использованием GDB превращается в настоящий кошмар. Я использую команду where, я встаю только до второго последнего вызова в трассировке стека и никогда не включаю фактическую строку.

Я не знаю почему, но последний вызов в трассировке стека выглядит как ??.

Любая помощь будет принята с благодарностью, если GDB действительно выведет ее на место!

(gdb) where
#0  0xafd0c7b8 in __futex_syscall3 () from /root/xxx/yyy/zzz/android/SviCore/obj/local/armeabi/libc.so
#1  0xafd1138c in pthread_mutex_lock () from /root/xxx/yyy/zzz/android/SviCore/obj/local/armeabi/libc.so
warning: (Internal error: pc 0x81892c3b in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x81892c3b in read in psymtab, but not in symtab.)

#2  0x81892c3c in boost::mutex::lock (this=0xfffffe00) at external/boost/include/boost/thread/pthread/mutex.hpp:52
warning: (Internal error: pc 0x81892d01 in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x81892d01 in read in psymtab, but not in symtab.)

#3  0x81892d02 in boost::unique_lock<boost::mutex>::lock (this=0xbec9032c) at external/boost/include/boost/thread/locks.hpp:412
warning: (Internal error: pc 0x81893279 in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x81893279 in read in psymtab, but not in symtab.)

#4  0x8189327a in ReadLock1 (this=<value optimized out>, mutex=@0x162acc) at external/boost/include/boost/thread/locks.hpp:290
#5  0x8188e0ec in SVI::DownloadManager::resumeAll (this=0x12fc00) at src/cm/DownloadManager.cpp:285
#6  0x81884e00 in Java_com_svi_core_DownloadManager_resumeAll (env=0xae28, obj=0x405181d8) at /root/xxx/yyy/zzz/android/SviCore/jni/DownloadManager.cpp:265
#7  0x80217ef8 in ?? ()

1 Ответ

2 голосов
/ 01 сентября 2011
this=<value optimized out>

Похоже, вы строите с включенными оптимизациями. Отключите их (-O0 опция gcc), и вы получите лучший стек вызовов.

Также обновите GDB до более поздней версии, чтобы избавиться от этих предупреждений warning: (Internal error: pc 0x81892c3b in read in psymtab, but not in symtab.).

...