[Buildroot] Segmentation fault while trying to remote debug with GDB and GDBServer

Oded Hanson OHanson at xsightsys.com
Fri Feb 28 15:58:49 UTC 2014


Hello All.


I have built a target based on a x86_64 architecture. I am booting it for testing on virtualbox (but it also boots with no problem on my target). I am using the buildroot's internal toolchain and the glibc C library (not uclibc !!).  I have tryed few GCC compiler versions and few GDB debugger versions, all resulting with the same issues. Currently using kernel 3.12.x, GCC 4.7.x and GDB 7.4.x.


I have compiled a simple helloworld app, using the eclipse plugin for buildroot. I have made sure its using the GCC generated by buildroot.


When I run the helloworld application on the target machine, it works fine as expected. However, when I try to remote debug it, it crashes with a segmentation fault right at the start before it even reaches the main.


I have performed the same action on my host (since its also x86_64 I can do that :) ) and there, no segmentation fault occurs.


I have attached the logs from both the gdbserver (run on the target machine) and the gdb (run on the host), I really hope someone will have an idea, because I have searched the entire internet (literally), and unfortunately I have no clue whats going wrong here:


gdb (host):

oded at oded-VirtualBox:~/workspace/HelloWorld/debug$ /home/oded/Buildroot/buildroot-2013.11/output/host/usr/bin/x86_64-buildroot-linux-gnu-gdb HelloWorld
GNU gdb (GDB) 7.4.1
Copyright (C) 2012 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-unknown-linux-gnu --target=x86_64-buildroot-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/oded/workspace/HelloWorld/debug/HelloWorld...done.
(gdb) target remote 192.168.0.67:2235
Remote debugging using 192.168.0.67:2235
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007ffff7dde2c0 in ?? () from /lib64/ld-linux-x86-64.so.2
(gdb) continue
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ded14f in ?? () from /lib64/ld-linux-x86-64.so.2
(gdb)


gdbserver (target):

# ./test
Hello World#
# gdbserver --debug :2235 ./test
my_waitpid (954, 0x0)
my_waitpid (954, 0x0): status(137f), 954
my_waitpid (954, 0x0)
my_waitpid (954, 0x0): status(1057f), 954
my_waitpid (955, 0x0)
my_waitpid (955, 0x0): status(137f), 955
my_waitpid (955, 0x0)
my_waitpid (955, 0x0): status(9), 955
my_waitpid (954, 0x0)
my_waitpid (954, 0x0): status(117f), 954
my_waitpid (954, 0x0)
my_waitpid (954, 0x0): status(9), 954
new_argv[0] = "./test"
Process ./test created; pid = 956
linux_wait: [Process 956]
linux_wait_for_lwp: <all threads>
my_waitpid (-1, 0x40000000)
blocking
sigchld_handler
my_waitpid (-1, 0x1): status(57f), 956
Got an event from 956 (57f)
pc is 0x7ffff7dde2c0
stop pc is 0x7ffff7dde2bf
linux_wait_for_lwp: pc is 0x7ffff7dde2c0
Hit a non-gdbserver trap event.
wait_for_sigstop: LWP 956 already stopped
Checking whether LWP 956 needs to move out of the jump pad...no
linux_wait ret = LWP 956.956, 1, 5
Listening on port 2235
handling possible accept event
Remote debugging from host 192.168.0.176
linux_async (0), previous=0
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
linux_async (0), previous=0
handling possible serial event
wait_for_sigstop: LWP 956 already stopped
Checking whether LWP 956 needs to move out of the jump pad...no
Writing resume reply for LWP 956.956:1

handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
symbol `gdb_agent_gdb_tp_heap_buffer' not found
Trying host libthread_db library: libthread_db.so.1.
Host libthread_db.so.1 resolved to: /lib/libthread_db.so.1.
td_ta_new(): application not linked with libthread
thread_db_load_search returning 0
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
symbol `gdb_agent_gdb_tp_heap_buffer' not found
Trying host libthread_db library: libthread_db.so.1.
Host libthread_db.so.1 resolved to: /lib/libthread_db.so.1.
td_ta_new(): application not linked with libthread
thread_db_load_search returning 0
handling possible serial event
handling possible serial event
handling possible serial event
handling possible serial event
symbol `gdb_agent_gdb_tp_heap_buffer' not found
Trying host libthread_db library: libthread_db.so.1.
Host libthread_db.so.1 resolved to: /lib/libthread_db.so.1.
td_ta_new(): application not linked with libthread
thread_db_load_search returning 0
handling possible serial event
gdbserver/tracepoint: Returning trace status as 0, stop reason tnotrun
handling possible serial event
gdbserver/tracepoint: Returning first trace state variable definition
handling possible serial event
gdbserver/tracepoint: Returning first trace state variable definition
handling possible serial event
gdbserver/tracepoint: Returning first tracepoint definition piece
handling possible serial event
gdbserver/tracepoint: Returning trace status as 0, stop reason tnotrun
handling possible serial event
Writing cc to 0x7ffff7ded160
handling possible serial event
handling possible serial event
handling possible serial event
Need step over [LWP 956]? No
pc is 0x7ffff7dde2c0
Need step over [LWP 956]? Cancelling, PC was changed.  Old stop_pc was 0x7ffff7dde2bf, PC is now 0x7ffff7dde2c0
Resuming, no pending status or step over needed
resuming LWP 956
pc is 0x7ffff7dde2c0
Resuming lwp 956 (continue, signal 0, stop not expected)
  resuming from pc 0x7ffff7dde2c0
linux_wait: [<all threads>]
linux_wait_for_lwp: <all threads>
my_waitpid (-1, 0x40000000)
blocking
sigchld_handler
my_waitpid (-1, 0x1): status(b7f), 956
Got an event from 956 (b7f)
pc is 0x7ffff7ded14f
stop pc is 0x7ffff7ded14f
linux_wait_for_lwp: pc is 0x7ffff7ded14f
Hit a non-gdbserver trap event.
wait_for_sigstop: LWP 956 already stopped
Checking whether LWP 956 needs to move out of the jump pad...no
linux_wait ret = LWP 956.956, 1, 11
Writing resume reply for LWP 956.956:1

handling possible serial event
Writing cd to 0x7ffff7ded160
handling possible serial event
handling possible serial event
handling possible serial event

?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140228/02fbe1da/attachment.html>


More information about the buildroot mailing list