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
Kompilierst du denn deinen Code inkl. Abhängigkeiten (z.B. boost) mit Debug-Symbolen?
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.
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.
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
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.
@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..
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.
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.
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?
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..
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.