summaryrefslogtreecommitdiff
path: root/development/cross-debug/README.cross-debug
Unidiff
Diffstat (limited to 'development/cross-debug/README.cross-debug') (more/less context) (ignore whitespace changes)
-rw-r--r--development/cross-debug/README.cross-debug82
1 files changed, 82 insertions, 0 deletions
diff --git a/development/cross-debug/README.cross-debug b/development/cross-debug/README.cross-debug
new file mode 100644
index 0000000..c44b298
--- a/dev/null
+++ b/development/cross-debug/README.cross-debug
@@ -0,0 +1,82 @@
1
2This is a quick'n'dirty HowTo for cross-debugging on your iPAQ/Zaurus:
3
4Requirements:
5-------------
6
71) You need the same binary of the program being debugged on the handheld
8 and on the desktop machine.
9
102) The binary for the handheld can be stripped (!!)
11
123) The binary for the desktop must have been compiled with -g
13
143) The same applies to shared libraries (but this is only needed if you want
15 to step into libraries or if you want the backtrace to show the right
16 function names for libraries)
17
18
19Setup:
20------
21
221) install the gdbserver.ipk on the handheld.
23
242) put the arm-linux-gdb binary somewhere in your $PATH (I would suggest
25 /opt/Embedix/tools/arm-linux/bin)
26
273) copy the sample.arm-gdbinit to your $HOME directory and rename it to
28 .arm-gdbinit
29
304) edit ~/.arm-gdbinit:
31 "solib-search-path" is the path, where gdb searches for shared libraries
32 "rtX" are some aliases to speed up debugging -- you can rename them, or
33 remove them (see below for the "target ... " syntax)
34
35
36Sample session: debugging the launcher
37--------------------------------------
38
391) Login on the handheld, kill Opie and execute:
40
41 # gdbserver foo:2345 /opt/QtPalmtop/bin/qpe
42
43 This starts the program qpe in debug mode, and the gdbserver stub now
44 listens on port 2345 for an incoming connection from the real gdb.
45 (foo should be name of the desktop machine, but it is ignored)
46
472) On the desktop, change to the $OPIEDIR containing the arm binaries
48
49 # cd $OPIEDIR
50 # cd core/launcher
51
52 # arm-linux-gdb ../../bin/qpe
53 or
54 # ddd --debugger arm-linux-gdb ../../bin/qpe
55
563) You should get an "(arm-gdb)" prompt. Now do
57
58 (arm-gdb) target remote zaurus:2345
59
60 You have to change zaurus to the hostname or ip-address of your handheld.
61 This should produce:
62
63 Remote debugging using zaurus:2345
64 0x40002a80 in ?? ()
65
66 (arm-gdb) break main
67 (arm-gdb) cont
68
69 And gdb should stop in 'main'. If gdb complains about unknown symbol
70 'main', you forgot to compile the application in debug mode.
71
72 This is where the rtFOO macros come in handy: just type rtX and you are
73 connected to machine BAR.
74
754) You can debug/step your application, as you would with a native gdb from
76 here on.
77
78 Please note that single stepping in a cross-debugger can be VERY SLOW
79 sometimes !!
80
81
82Robert 'sandman' Griebl, 17.11.2002