Forum: Compiler & IDEs SW läuft aber nicht im gdb server


von Reinhard (Gast)


Angehängte Dateien:

Lesenswert?

Hallo..

habe ein QT5_application Projekt welches ich auf einer Ubuntu VM 
entwickle und mittels Cross-compiling für eine cortexa9hf CPU erstelle. 
Führe ich das Programm am Embedded Linux aus läuft es fehlerfrei, lasse 
ich es unter gdbserver laufen und verbinde mich dann von der VM Ware und 
dem QTCreator auf den gdbserver stürzt die Software sofort ab mit einem 
" undefined symbol" in der boost library. Die Pfade in der gesucht 
werden stimmen, habe es mit LD_DEBUG überprüft. Weiß nicht mehr was ich 
noch testen/ändern kann um da weiter zu kommen.

Als Screenshot mein Qt-pro und die Fehlermeldung, wie gesagt ohne gdb 
läuft die Anwendung fehlerfrei.. aber entwickeln ohne debugger macht 
keinen Spaß

Hat da wer einen Tipp für mich? Vielen Dank im Voraus..
Reinhard

von Christopher J. (christopher_j23)


Lesenswert?

Kompilierst du denn deinen Code inkl. Abhängigkeiten (z.B. boost) mit 
Debug-Symbolen?

von Reinhard (Gast)


Lesenswert?

Guten Morgen,

mh.. dieser Compiler Call wird gemacht
<source lang="c"> arm-poky-linux-gnueabi-g++  -march=armv7-a -marm 
-mfpu=neon  -mfloat-abi=hard -mcpu=cortex-a9 
--sysroot=/workspace/data/egspro_sdk/sysroots/cortexa9hf-neon-poky-linux 
-gnueabi  -c -pipe  -O2 -pipe -g -feliminate-unused-debug-types 
-fdebug-prefix-map=/home/workspace-jenkins/Yocto_Release/build/egspro/we 
-wayland-qt5/we-bsp-release/tmp/work/x86_64-nativesdk-pokysdk-linux/meta 
-environment-egspro/1.0-r8=/usr/src/debug/meta-environment-egspro/1.0-r8 
-fdebug-prefix-map=/home/workspace-jenkins/Yocto_Release/build/egspro/we 
-wayland-qt5/we-bsp-release/tmp/sysroots/x86_64-linux= 
-fdebug-prefix-map=/home/workspace-jenkins/Yocto_Release/build/egspro/we 
-wayland-qt5/we-bsp-release/tmp/sysroots/arm-nativesdk-pokysdk-= 
-std=gnu++0x -g -DLINUX=1 -DEGL_API_FB=1 -std=gnu++0x -Wall -W 
-D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_CORE_LIB -I../wtwd -I. -isystem 
/workspace/data/egspro_sdk/sysroots/cortexa9hf-neon-poky-linux-gnueabi/u 
sr/include  -I../../WEapi_development_package_egspro/include 
-I../../WEapi_development_package_egspro/include/weapi/include -isystem 
/workspace/data/egspro_sdk/sysroots/cortexa9hf-neon-poky-linux-gnueabi/u 
sr/include/qt5  -isystem 
/workspace/data/egspro_sdk/sysroots/cortexa9hf-neon-poky-linux-gnueabi/u 
sr/include/qt5/QtCore  -I. 
-I/workspace/data/egspro_sdk/sysroots/cortexa9hf-neon-poky-linux-gnueabi 
/usr/lib/qt5/mkspecs/linux-oe-g++  -o moc_SYS_main.o moc_SYS_main.cpp 
</source>
Die Boost-Libraries habe ich von meinem HW-Supplier bereits 
vorkompiliert samt header bekommen.

von Sven S. (boldie)


Lesenswert?

Sowas hatte ich auch schon Mal, den Grund weiss ich aber nicht mehr. 
Hatte mir damals aber Output von strace angesehen um das zu Debuggen.

von Reinhard (Gast)


Lesenswert?

Vielen Dank mal für den Hinweis, das kannte ich bis jetzt nicht.

Leider bin ich daraus auch nicht schlauer geworden.. Was mir noch nicht 
ganz klar ist, warum macht es einen Unterschied ob es im gdbserver läuft 
oder nicht, denn wie gesagt starte ich die Anwendung direkt läuft sie.


write(4, "$l<threads>\n<thread id=\"p229.229"..., 59) = 59
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m11f10,4#f6", 8192)           = 12
ptrace(PTRACE_PEEKTEXT, 553, 0x11f10, [0xe92d4070]) = 0
write(4, "$70402de9#ff", 12)            = 12
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m11f18,4#fe", 8192)           = 12
ptrace(PTRACE_PEEKTEXT, 553, 0x11f18, [0xe1a05001]) = 0
write(4, "$0150a0e1#ed", 12)            = 12
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m11f10,4#f6", 8192)           = 12
ptrace(PTRACE_PEEKTEXT, 553, 0x11f10, [0xe92d4070]) = 0
write(4, "$70402de9#ff", 12)            = 12
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,4#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,4#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,2#fb", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffe,2#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,2#f8", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,2#fb", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffe,2#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,2#f8", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,4#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,4#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,4#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,4#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,2#fb", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffe,2#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,2#f8", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,2#fb", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffe,2#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,2#f8", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,4#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$mfffffffc,4#fa", 8192)        = 15
ptrace(PTRACE_PEEKTEXT, 553, 0xfffffffc, 0x7ee727e0) = -1 EIO 
(Input/output error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m0,4#fd", 8192)               = 8
ptrace(PTRACE_PEEKTEXT, 553, NULL, 0x7ee727e0) = -1 EIO (Input/output 
error)
write(4, "$E01#a6", 7)                  = 7
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$Z0,10cf8,4#78", 8192)         = 14
write(4, "$#00", 4)                     = 4
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m10cf8,4#2f", 8192)           = 12
ptrace(PTRACE_PEEKTEXT, 553, 0x10cf8, [0x63726137]) = 0
write(4, "$37617263#a3", 12)            = 12
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$X10cf8,0:#50", 8192)          = 13
write(4, "$OK#9a", 6)                   = 6
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$X10cf8,4:\360\1\360\347#1c", 8192) = 17
ptrace(PTRACE_PEEKTEXT, 553, 0x10cf8, [0x63726137]) = 0
ptrace(PTRACE_POKETEXT, 553, 0x10cf8, 0xe7f001f0) = 0
write(4, "$OK#9a", 6)                   = 6
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$m11f10,4#f6", 8192)           = 12
ptrace(PTRACE_PEEKTEXT, 553, 0x11f10, [0xe92d4070]) = 0
write(4, "$70402de9#ff", 12)            = 12
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$X11f10,4:\360\1\360\347#e3", 8192) = 17
ptrace(PTRACE_PEEKTEXT, 553, 0x11f10, [0xe92d4070]) = 0
ptrace(PTRACE_POKETEXT, 553, 0x11f10, 0xe7f001f0) = 0
write(4, "$OK#9a", 6)                   = 6
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$QPassSignals:e;10;14;17;1a;1b;1"..., 8192) = 52
write(4, "$OK#9a", 6)                   = 6
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$vCont?#49", 8192)             = 10
write(4, "$vCont;c;C;s;S;t#11", 19)     = 19
_newselect(5, [4], [], [4], NULL)       = 1 (in [4])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
read(4, "$vCont;c#a8", 8192)            = 11
rt_sigaction(SIGIO, {0x16238, [IO], SA_RESTORER|SA_RESTART, 0x4a00df30}, 
{SIG_IGN, [IO], SA_RESTORER|SA_RESTART, 0x4a00df30}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
ptrace(PTRACE_GETREGS, 553, NULL, 0x75cb8) = 0
ptrace(PTRACE_SETREGS, 553, NULL, 0x75cb8) = 0
ptrace(PTRACE_GETVFPREGS, 553, NULL, 0x75cb8) = 0
ptrace(PTRACE_SETVFPREGS, 553, NULL, 0x75cb8) = 0
ptrace(PTRACE_CONT, 553, NULL, SIG_0)   = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
wait4(-1, 0x7ee72708, WNOHANG, NULL)    = 0
wait4(-1, 0x7ee72708, WNOHANG|__WCLONE, NULL) = -1 ECHILD (No child 
processes)
rt_sigsuspend([], 8wtwd: symbol lookup error: wtwd: undefined symbol: 
_ZN5boost7archive1▒▒▒hive_exceptionD1Ev
)                    = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=553, si_uid=0, 
si_status=127, si_utime=11, si_stime=1} ---
sigreturn({mask=~[KILL STOP RTMIN RT_1]}) = -1 EINTR (Interrupted system 
call)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG, NULL) = 
553
wait4(-1, 0x7ee72708, WNOHANG, NULL)    = -1 ECHILD (No child processes)
wait4(-1, 0x7ee72708, WNOHANG|__WCLONE, NULL) = -1 ECHILD (No child 
processes)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(2, "\nChild exited with status 127\n", 30

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Starte den GDB doch mal auf der Konsole, ohne QTCreator. Da kommen 
bestimmt bessere Fehlermeldungen. Normalerweise stört sich der GDB nicht 
besonders an fehlenden Symbolen; er wird nur weniger hilfreich.

von Reinhard (Gast)


Lesenswert?

@Niklas,
danke mal für den Tipp.. das klappt komischerweise, dh wenn ich den 
cross-compiled gdb in meiner vmware starte läuft die applikation am 
device.. der gleiche gdb ist aber in den debugger einstellungen vom 
QTCreator in Verwendung..

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Reinhard schrieb:
> der gleiche gdb ist aber in den debugger einstellungen vom
> QTCreator in Verwendung..

Dann stammt die Meldung wohl von QTCreator. Du musst da vermutlich 
irgendwo den Pfad zu den Boost Libraries einstellen.

von Reinhard (Gast)


Lesenswert?

Aber es stürzt doch die Anwendung am Device ab, die selbe die vorher mit 
der Kommandozeilen-gdb Verbindung noch alle Pfade hatte.. Ich kann mich 
leider nur mittels dem QTCreator auf eine entferne Server Session 
verbinden (was ja nicht klappt) und nicht auf die lokale gdb Session, 
sonst wäre das mein Workaround.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Reinhard schrieb:
> Aber es stürzt doch die Anwendung am Device ab

Ganz sicher? Du könntest es prüfen indem du ein Minimalst-Hello-World 
ohne Qt und Boost kompilierst und linkst, und dann versuchst mit 
dlopen() die fragliche .so zu öffnen.

Reinhard schrieb:
> die selbe die vorher mit
> der Kommandozeilen-gdb Verbindung noch alle Pfade hatte..

In beiden Fällen wird doch der GDB-Server auf dem Device genutzt und ein 
GDB in der VM, oder? Der einzige Unterschied ist der QTCreator. Also 
muss der schuld sein... Kannst du herausfinden mit welcher Kommandozeile 
gdb und gdbserver jeweils gestartet werden?

von Reinhard (Gast)


Lesenswert?

Ich hab im QT Creator unter Ausführung die Debug Einstellungen.. wenn 
ich da nur QML akitivert lasse und C++ nicht, läuft die Anwendung aber 
ich hab keine Breakpoints. Welche gdb Kommands er genau ausführt bin ich 
noch nicht fündig geworden..

von Reinhard (Gast)


Lesenswert?

Ich bin einen kleinen Schritt weiter.. Die Applikation war eine 
Konsolenanwendung, das hat bis jetzt ja  nicht so toll geklappt. Habe 
nun eine QT Widget Anwendung probiert.. die klappt zwar auch nicht 
direkt zum debuggen, aber ich kann wenigsten den gdbserver manuell am 
device starten und mich dann via QTCreator am laufenden Server anmelden, 
dann kann ich debuggen. Dh für mich weiterhin, das der QTCreator den 
gdbserver einfach falsch konfiguriert.. habe mal kurz versucht .dbinit 
zu verwenden, aber das hat nicht geklappt, weiß wer wie das File 
aussehen muss und wo es liegen muss.

von Oliver S. (oliverso)


Lesenswert?

Vom QtCreator gibt es den Sourcecode, da kannst du nachschauen, was der 
macht. Vielleicht hilft auch der verbose Mode vom gdb weiter.

Oliver

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.