Я использую Qt Creator 3.2.1 и gdb 7.6.2 (powerpc64-fsl-linux-gdb
от QorIQ SDK 1.8) для отладки скрещенных скомпилированных приложений.Qt Creator/gdb/удаленная отладка/кросс-компиляция: solib-search-path не используется
На моей тестовой машине ppc64 (Yocto) Я бегу gdbserver: gdbserver :666 /path/to/myapp
Затем я подключить с помощью Qt Creator на моем x86_64 Dev машины (Debian) для gdbserver. Я указал Kit (sysroot is /opt/fsl-networking/QorIQ-SDK-V1.8/sysroots/ppc64e6500-fsl-linux
), toolchain gdb и т. Д. Это работает до сих пор. Я могу отлаживать любое приложение.
Но если мои приложения ссылка динамически библиотеки, и я хочу, чтобы отладить эту библиотеку (/path/to/libmylib.so
), GDB в Qt Creator не может ступить в изломы MyLib.
То, что я хочу сделать с Qt Creator является как это:
- Yocto: начать gdbserver
- Debian: запустить
powerpc64-fsl-linux-gdb /path/to/myapp
и введитеset solib-search-path /path/to/mylib/
target remote 192.168.120.211:666
break MyLibraryFunctionIWantToDebug
run
c
Вход:
GNU gdb (GDB) 7.6.2
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-fslsdk-linux --target=powerpc64-fsl-linux".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /path/to/myapp...done.
(gdb) show solib-search-path
The search path for loading non-absolute shared library symbol files is .
(gdb) set solib-search-path /path/to/mylib/
(gdb) show solib-search-pat
The search path for loading non-absolute shared library symbol files is /path/to/mylib/.
(gdb) target remote 192.168.120.211:666
Remote debugging using 192.168.120.211:666
(gdb) break MyLibraryFunctionIWantToDebug
Breakpoint 1 at 0x10001088: file /path/to/myapp/myapp.c, line 196.
(gdb) run
The "remote" target does not support "run". Try "help target" or "continue".
(gdb) c
...
исследований до сих пор:
- gdb has a bug in version 7.4 (Я используя 7.6.2 прямо сейчас)
- Я могу положить команду
set solib-search-path /path/to/mylib/
в .gdbinit. В Qt Creator каждый .gdbinit-файл игнорируется. Я пробовал несколько мест, например.~/.gdbinit
,/path/to/myapp/.gdbinit
, аргументы командной строки опция в Qt creator:-x ~/.gdbinit
, Tools> Options> Debuggers, помещающая команду в каждое дополнительное поле. Никто не работает :-( - Я не один с моим вопросом, см here или here
Любые идеи, как пересечь отладки с помощью GDB в Qt Creator при использовании разделяемых библиотек?
пытаются 'GDB прикрепить PID' http://stackoverflow.com/questions/2308653/can-i-use-gdb-to-debug-a-running-process – qknight