Blame view

buildroot/buildroot-2016.08.1/docs/manual/using-buildroot-debugger.txt 1.92 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  // -*- mode:doc; -*-
  // vim: set syntax=asciidoc:
  
  ==== Using +gdb+ in Buildroot
  
  Buildroot allows to do cross-debugging, where the debugger runs on the
  build machine and communicates with +gdbserver+ on the target to
  control the execution of the program.
  
  To achieve this:
  
  * If you are using an _internal toolchain_ (built by Buildroot), you
    must enable +BR2_PACKAGE_HOST_GDB+, +BR2_PACKAGE_GDB+ and
    +BR2_PACKAGE_GDB_SERVER+. This ensures that both the cross gdb and
    gdbserver get built, and that gdbserver gets installed to your target.
  
  * If you are using an _external toolchain_, you should enable
    +BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY+, which will copy the
    gdbserver included with the external toolchain to the target. If your
    external toolchain does not have a cross gdb or gdbserver, it is also
    possible to let Buildroot build them, by enabling the same options as
    for the _internal toolchain backend_.
  
  Now, to start debugging a program called +foo+, you should run on the
  target:
  
  ----------------------------
  gdbserver :2345 foo
  ----------------------------
  
  This will cause +gdbserver+ to listen on TCP port 2345 for a connection
  from the cross gdb.
  
  Then, on the host, you should start the cross gdb using the following
  command line:
  
  ----------------------------
  <buildroot>/output/host/usr/bin/<tuple>-gdb -x <buildroot>/output/staging/usr/share/buildroot/gdbinit foo
  ----------------------------
  
  Of course, +foo+ must be available in the current directory, built
  with debugging symbols. Typically you start this command from the
  directory where +foo+ is built (and not from +output/target/+ as the
  binaries in that directory are stripped).
  
  The +<buildroot>/output/staging/usr/share/buildroot/gdbinit+ file will tell the
  cross gdb where to find the libraries of the target.
  
  Finally, to connect to the target from the cross gdb:
  
  ----------------------------
  (gdb) target remote <target ip address>:2345
  ----------------------------