Il 02/04/2014 18:03, Anthony PERARD ha scritto:
On Wed, Apr 02, 2014 at 01:13:31PM +0200, Fabio Fantoni wrote:
- if you posted qemu's backtrace at the sigsegv.
I tried to use gdb following this old post:
https://lists.gnu.org/archive/html/qemu-devel/2011-12/msg02575.html
but with same changes:
/usr/lib/xen/bin# vi qemu-system-i386
#!/bin/sh
exec gdbserver 0.0.0.0:1234 /usr/lib/xen/bin/qemu-system-i386.bak "$@"
gdb /usr/lib/xen/bin/qemu-system-i386.bak
target remote localhost:1234
This command with gdb on qemu fails:
xl -vvv create /etc/xen/wheezy.cfg
...
libxl: error: libxl_dm.c:1378:device_model_spawn_outcome: domain 13 device
model: spawn failed (rc=-3)
libxl: error: libxl_create.c:1207:domcreate_devmodel_started: device model
did not start: -3
libxl: debug: libxl_dm.c:1485:kill_device_model: Device Model signaled
...
the dom0 syslog show segfault also in this case and the qemu log is
different on first lines (probably for gdbserver):
less /var/log/xen/qemu-dm-wheezy.log
Process /usr/lib/xen/bin/qemu-system-i386.bak created; pid = 8238
Listening on port 1234
Remote debugging from host 127.0.0.1
xc: error: linux_gnttab_set_max_grants: ioctl SET_MAX_GRANTS failed (22 =
Invalid argument): Internal error
xen be: qdisk-51712: xc_gnttab_set_max_grants failed: Invalid argument
gdb on xl create show:
(gdb) target remote localhost:1234
Remote debugging using localhost:1234
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
0x00007ffff7dddaf0 in ?? () from /lib64/ld-linux-x86-64.so.2
(gdb)
(gdb) bt full
#0 0x00007ffff7dddaf0 in ?? () from /lib64/ld-linux-x86-64.so.2
No symbol table info available.
#1 0x0000000000000013 in ?? ()
No symbol table info available.
#2 0x00007fffffffe871 in ?? ()
No symbol table info available.
#3 0x00007fffffffe897 in ?? ()
No symbol table info available.
#4 0x00007fffffffe8a2 in ?? ()
No symbol table info available.
#5 0x00007fffffffe8a5 in ?? ()
No symbol table info available.
#6 0x00007fffffffe8ae in ?? ()
No symbol table info available.
#7 0x00007fffffffe8ef in ?? ()
No symbol table info available.
#8 0x00007fffffffe8f4 in ?? ()
No symbol table info available.
#9 0x00007fffffffe913 in ?? ()
No symbol table info available.
#10 0x00007fffffffe91f in ?? ()
No symbol table info available.
#11 0x00007fffffffe92b in ?? ()
No symbol table info available.
#12 0x00007fffffffe931 in ?? ()
---Type <return> to continue, or q <return> to quit---
the qemu include debug and is not stripped:
file /usr/lib/xen/bin/qemu-system-i386.bak
/usr/lib/xen/bin/qemu-system-i386.bak: ELF 64-bit LSB shared object, x86-64,
version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux
2.6.26, BuildID[sha1]=0x5aa043b5524d74d166ead62527343080384d586b, not
stripped
and I also tried:
aptitude install libc6-dbg
but same result.
I not understand what I missed for correct xl create and/or gdb
informations.
Can someone help me please?
Using gdb on qemu is not easy, you need to be quick.
When you "xl create", you have about 10 second to start gdb on qemu,
otherwise, xl will fail to create a guest.
So I advise you to start "gdb /usr/lib/xen/bin/qemu-system-i386.bak" in
a second terminal, write "target remote localhost:1234" BUT not Enter,
to keep the command ready to run.
Then, start "xl create" and imediatly, run the "target" command in gdb
and "c" (for continue) which will start qemu.
That should help you reach the point where you can get the backtrace,
after the segv.
Thanks for your reply.
I following your istructions, after "c" xl create finish.
gdb show:
(gdb) C
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0x000055555584b4c1 in qemu_input_event_send (src=0x0, evt=0x55555630a420)
at ui/input.c:146
146 s->handler->event(s->dev, src, evt);
(gdb) bt full
#0 0x000055555584b4c1 in qemu_input_event_send (src=0x0,
evt=0x55555630a420)
at ui/input.c:146
s = 0x0
#1 0x000055555584baef in qemu_input_queue_rel (src=0x0,
axis=INPUT_AXIS_X,
value=1) at ui/input.c:272
evt = 0x55555630a420
#2 0x0000555555871043 in pointer_event (vs=0x55555630a4c0,
button_mask=0,
x=478, y=186) at ui/vnc.c:1531
bmap = {1, 2, 4, 8, 16}
con = 0x0
width = 640
height = 480
#3 0x0000555555872c00 in protocol_client_msg (vs=0x55555630a4c0,
data=0x5555562fe420 "\005", len=6) at ui/vnc.c:2139
i = 1446028480
limit = 22063
vd = 0x7ffff7eb6010
#4 0x0000555555870861 in vnc_client_read (opaque=0x55555630a4c0)
at ui/vnc.c:1389
len = 6
ret = 6
vs = 0x55555630a4c0
ret = 6
#5 0x00005555557cd5cc in qemu_iohandler_poll (pollfds=0x5555562e6a00,
ret=1)
at iohandler.c:143
---Type <return> to continue, or q <return> to quit---
revents = 1
pioh = 0x5555562fa780
ioh = 0x5555562f5560
#6 0x00005555557ce678 in main_loop_wait (nonblocking=0) at
main-loop.c:485
ret = 1
timeout = 4294967295
timeout_ns = 79570735
#7 0x000055555587a070 in main_loop () at vl.c:2051
nonblocking = false
last_io = 1
#8 0x0000555555881a4a in main (argc=19, argv=0x7fffffffe5f8,
envp=0x7fffffffe698) at vl.c:4507
i = 64
snapshot = 0
linux_boot = 0
icount_option = 0x0
initrd_filename = 0x0
kernel_filename = 0x0
kernel_cmdline = 0x555555a1a464 ""
boot_order = 0x0
ds = 0x5555562f34a0
cyls = 0
heads = 0
secs = 0
translation = 0
---Type <return> to continue, or q <return> to quit---
hda_opts = 0x0
opts = 0x0
machine_opts = 0x5555562e6600
olist = 0x555555dffe00
optind = 19
optarg = 0x7fffffffe969 "1025"
loadvm = 0x0
machine_class = 0x5555562d6d50
machine = 0x555555e0d2c0
cpu_model = 0x0
vga_model = 0x0
qtest_chrdev = 0x0
qtest_log = 0x0
pid_file = 0x0
incoming = 0x0
show_vnc_port = 0
defconfig = true
userconfig = true
log_mask = 0x0
log_file = 0x0
mem_trace = {malloc = 0x55555587d902 <malloc_and_trace>,
realloc = 0x55555587d95a <realloc_and_trace>,
free = 0x55555587d9c1 <free_and_trace>, calloc = 0,
try_malloc = 0,
try_realloc = 0}
trace_events = 0x0
---Type <return> to continue, or q <return> to quit---
trace_file = 0x0
__func__ = "main"
args = {machine = 0x555555e0d2c0, ram_size = 1074790400,
boot_order = 0x0, kernel_filename = 0x0,
kernel_cmdline = 0x555555a1a464 "", initrd_filename = 0x0,
cpu_model = 0x0}
(gdb)
Seems that do segfault when I connect to vnc or spice, in the test of
this backtrace after connect to vnc, spice and other things of my
patches are disabled, so do not think it is a problem caused by my patches.