Hi!
It seems the vgcore files valgrind writes are not fully gdb compatible
when there are threads.
The attached program creates one additional thread and then calls abort
in main.
1. Running this program on the console creates a core file as expected.
Issuing "info threads" in gdb gives (correct) this output:
(gdb) info threads
Id Target Id Frame
2 Thread 0x7fa02e30e700 (LWP 8272) 0x00000034876a6cdd in nanosleep
() from /lib64/libc.so.6
* 1 Thread 0x7fa02e310700 (LWP 8271) 0x0000003487632a75 in raise ()
from /lib64/libc.so.6
2. Running under valgrind (tested 3.7.0 and subversion r12445) creates a
vgcore file, but asking gdb for "info threads" gives an error:
$ gdb abort-threads vgcore.8338
GNU gdb (Gentoo 7.4 p1) 7.4
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 "x86_64-pc-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>...
Reading symbols from
/home/matze/development/valgrind.git/none/tests/abort-threads...(no
debugging symbols found)...done.
[New LWP 8339]
[New LWP 8338]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Cannot find new threads: generic error
Core was generated by `'.
Program terminated with signal 6, Aborted.
#0 0x00000034876a6cdd in nanosleep () from /lib64/libc.so.6
(gdb) info threads
Cannot find new threads: generic error
(gdb) thread apply all bt
Cannot find new threads: generic error
(gdb) thread apply 1-3 bt
Thread 1 (LWP 8339):
#0 0x00000034876a6cdd in nanosleep () from /lib64/libc.so.6
#1 0x00000034876a6b89 in sleep () from /lib64/libc.so.6
#2 0x000000000040079a in th ()
#3 0x0000003488206f9c in start_thread () from /lib64/libpthread.so.0
#4 0x00000034876d956d in clone () from /lib64/libc.so.6
Thread 2 (LWP 8338):
#0 0x0000003487632a75 in raise () from /lib64/libc.so.6
#1 0x0000003487633e1a in abort () from /lib64/libc.so.6
#2 0x000000000040082b in main ()
warning: Unknown thread 3.
(gdb)
So gdb knows the threads, but does not like to print an overview.
I found out that one can look into core files using "eu-readelf --notes".
The results are attached.
Regards
Matthias
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
static void *th(void *v)
{
sleep(1);
pthread_exit(0);
}
int main()
{
#define THREAD_COUNT 1
pthread_t a[THREAD_COUNT];
int i;
for (i = 0; i < THREAD_COUNT; i++)
{
char threadname[10];
snprintf(threadname, sizeof(threadname), "Thread %d", i);
pthread_create(a+i, NULL, th, NULL);
pthread_setname_np(a[i], threadname);
}
abort();
//pthread_exit(0);
}
Note segment of 2256 bytes at offset 0x5b8:
Owner Data size Type
CORE 336 PRSTATUS
info.si_signo: 6, info.si_code: 0, info.si_errno: 0, cursig: 6
sigpend: <>
sighold: <>
pid: 8271, ppid: 8258, pgrp: 8271, sid: 6816
utime: 0.000000, stime: 0.000000, cutime: 0.000000, cstime: 0.000000
orig_rax: 234, fpvalid: 1
r15: 0 r14: 0
r13: 140736527500416 r12: 4195968
rbp: 0x00007fffc6ba83a0 rbx: 0
r11: 514 r10: 8
r9: 140325946451712 r8: 0
rax: 0 rcx: -1
rdx: 6 rsi: 8271
rdi: 8271 rip: 0x0000003487632a75
rflags: 0x0000000000000202 rsp: 0x00007fffc6ba8248
fs.base: 0x00007fa02e310700 gs.base: 0x0000000000000000
cs: 0x0033 ss: 0x002b ds: 0x0000 es: 0x0000 fs: 0x0000 gs: 0x0000
CORE 136 PRPSINFO
state: 0, sname: R, zomb: 0, nice: 0, flag: 0x0000000000402400
uid: 1003, gid: 100, pid: 8271, ppid: 8258, pgrp: 8271, sid: 6816
fname: abort-threads, psargs: ./abort-threads
CORE 304 AUXV
SYSINFO_EHDR: 0x7fffc6bff000
HWCAP: 0x178bfbff <fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht>
PAGESZ: 4096
CLKTCK: 100
PHDR: 0x400040
PHENT: 56
PHNUM: 10
BASE: 0
FLAGS: 0
ENTRY: 0x400680
UID: 1003
EUID: 1003
GID: 100
EGID: 100
SECURE: 0
RANDOM: 0x7fffc6ba8819
EXECFN: 0x7fffc6ba9fe8
PLATFORM: 0x7fffc6ba8829
NULL
CORE 512 FPREGSET
xmm0: 0x00000000000000000000000000000000
xmm1: 0x25252525252525252525252525252525
xmm2: 0x00000000000000000000000000000000
xmm3: 0x00000000000000000000ff0000000000
xmm4: 0x00000000000000000000000000000000
xmm5: 0x00000000000000000000000000000000
xmm6: 0x00000000000000000000000000000000
xmm7: 0x00000000000000000000000000000000
xmm8: 0x00000000000000000000000000000000
xmm9: 0x00000000000000000000000000000000
xmm10: 0x00000000000000000000000000000000
xmm11: 0x00000000000000000000000000000000
xmm12: 0x00000000000000000000000000000000
xmm13: 0x00000000000000000000000000000000
xmm14: 0x00000000000000000000000000000000
xmm15: 0x00000000000000000000000000000000
st0: 0x00000000000000000000 st1: 0x00000000000000000000
st2: 0x00000000000000000000 st3: 0x00000000000000000000
st4: 0x00000000000000000000 st5: 0x00000000000000000000
st6: 0x00000000000000000000 st7: 0x00000000000000000000
mxcsr: 0x0002ffff00001f80
fcw: 0x037f fsw: 0x0000
CORE 336 PRSTATUS
info.si_signo: 6, info.si_code: 0, info.si_errno: 0, cursig: 6
sigpend: <>
sighold: <>
pid: 8272, ppid: 8258, pgrp: 8271, sid: 6816
utime: 0.000000, stime: 0.000000, cutime: 0.000000, cstime: 0.000000
orig_rax: 35, fpvalid: 1
r15: 3 r14: 225586581504
r13: 140325946452416 r12: 140325946449296
rbp: 0x00000000ffffffff rbx: 140325946449424
r11: 659 r10: 8
r9: 0 r8: 140325946449136
rax: -516 rcx: -1
rdx: 0 rsi: 140325946449552
rdi: 140325946449552 rip: 0x00000034876a6cdd
rflags: 0x0000000000000293 rsp: 0x00007fa02e30dce0
fs.base: 0x00007fa02e30e700 gs.base: 0x0000000000000000
cs: 0x0033 ss: 0x002b ds: 0x0000 es: 0x0000 fs: 0x0000 gs: 0x0000
CORE 512 FPREGSET
xmm0: 0x00000000000000000000000000000000
xmm1: 0x25252525252525252525252525252525
xmm2: 0x00000000000000000000000000000000
xmm3: 0xffffff0000000000ffffff0000000000
xmm4: 0x00000000000000000000000000000000
xmm5: 0x00000000000000000000000000000000
xmm6: 0x00000000000000000000000000000000
xmm7: 0x00000000000000000000000000000000
xmm8: 0x00000000000000000000000000000000
xmm9: 0x00000000000000000000000000000000
xmm10: 0x00000000000000000000000000000000
xmm11: 0x00000000000000000000000000000000
xmm12: 0x00000000000000000000000000000000
xmm13: 0x00000000000000000000000000000000
xmm14: 0x00000000000000000000000000000000
xmm15: 0x00000000000000000000000000000000
st0: 0x00000000000000000000 st1: 0x00000000000000000000
st2: 0x00000000000000000000 st3: 0x00000000000000000000
st4: 0x00000000000000000000 st5: 0x00000000000000000000
st6: 0x00000000000000000000 st7: 0x00000000000000000000
mxcsr: 0x0002ffff00001f80
fcw: 0x037f fsw: 0x0000
Note segment of 1932 bytes at offset 0x7b0:
Owner Data size Type
CORE 136 PRPSINFO
state: 0, sname: R, zomb: 0, nice: 0, flag: 0x0000000000000000
uid: 0, gid: 0, pid: 0, ppid: 0, pgrp: 0, sid: 0
fname: abort-threads, psargs:
CORE 336 PRSTATUS
info.si_signo: 6, info.si_code: -6, info.si_errno: 0, cursig: 6
sigpend: <>
sighold: <>
pid: 8339, ppid: 0, pgrp: 8336, sid: 8336
utime: 0.000000, stime: 0.000000, cutime: 0.000000, cstime: 0.000000
orig_rax: 0, fpvalid: 0
r15: 3 r14: 225586581504
r13: 88443328 r12: 88440208
rbp: 0x00000000ffffffff rbx: 88440336
r11: 2 r10: 8
r9: 0 r8: 88440048
rax: 35 rcx: 225610198237
rdx: 0 rsi: 88440464
rdi: 88440464 rip: 0x00000034876a6cdd
rflags: 0x0000000000000091 rsp: 0x0000000005457ce0
fs.base: 0x0000000000000000 gs.base: 0x0000000000000000
cs: 0x0000 ss: 0x0000 ds: 0x0000 es: 0x0000 fs: 0x0000 gs: 0x0000
CORE 512 FPREGSET
xmm0: 0x00000000000000000000000000000000
xmm1: 0x24242424242424242424242424242424
xmm2: 0x00000000000000000000000000000000
xmm3: 0xff000000000000000000000000000000
xmm4: 0x00000000000000000000000000000000
xmm5: 0x00000000000000000000000000000000
xmm6: 0x00000000000000000000000000000000
xmm7: 0x00000000000000000000000000000000
xmm8: 0x00000000000000000000000000000000
xmm9: 0x00000000000000000000000000000000
xmm10: 0x00000000000000000000000000000000
xmm11: 0x00000000000000000000000000000000
xmm12: 0x00000000000000000000000000000000
xmm13: 0x00000000000000000000000000000000
xmm14: 0x00000000000000000000000000000000
xmm15: 0x00000000000000000000000000000000
st0: 0x00000000000000000000 st1: 0x00000000000000000000
st2: 0x00000000000000000000 st3: 0x00000000000000000000
st4: 0x00000000000000000000 st5: 0x00000000000000000000
st6: 0x00000000000000000000 st7: 0x00000000000000000000
mxcsr: 0x0000000000000000
fcw: 0x0003 fsw: 0x0000
CORE 336 PRSTATUS
info.si_signo: 6, info.si_code: -6, info.si_errno: 0, cursig: 6
sigpend: <>
sighold: <>
pid: 8338, ppid: 0, pgrp: 8336, sid: 8336
utime: 0.000000, stime: 0.000000, cutime: 0.000000, cstime: 0.000000
orig_rax: 0, fpvalid: 0
r15: 0 r14: 0
r13: 34342959408 r12: 4195968
rbp: 0x00000007fefff850 rbx: 0
r11: 225609727136 r10: 8
r9: 88442624 r8: 0
rax: 0 rcx: 225609722485
rdx: 6 rsi: 8338
rdi: 8338 rip: 0x0000003487632a75
rflags: 0x0000000000000000 rsp: 0x00000007fefff6f8
fs.base: 0x0000000000000000 gs.base: 0x0000000000000000
cs: 0x0000 ss: 0x0000 ds: 0x0000 es: 0x0000 fs: 0x0000 gs: 0x0000
CORE 512 FPREGSET
xmm0: 0x00000000000000000000000000000000
xmm1: 0x24242424242424242424242424242424
xmm2: 0x00000000000000000000000000000000
xmm3: 0xff000000000000000000000000000000
xmm4: 0x00000000000000000000000000000000
xmm5: 0x00000000000000000000000000000000
xmm6: 0x00000000000000000000000000000000
xmm7: 0x00000000000000000000000000000000
xmm8: 0x00000000000000000000000000000000
xmm9: 0x00000000000000000000000000000000
xmm10: 0x00000000000000000000000000000000
xmm11: 0x00000000000000000000000000000000
xmm12: 0x00000000000000000000000000000000
xmm13: 0x00000000000000000000000000000000
xmm14: 0x00000000000000000000000000000000
xmm15: 0x00000000000000000000000000000000
st0: 0x00000000000000000000 st1: 0x00000000000000000000
st2: 0x00000000000000000000 st3: 0x00000000000000000000
st4: 0x00000000000000000000 st5: 0x00000000000000000000
st6: 0x00000000000000000000 st7: 0x00000000000000000000
mxcsr: 0x0000000000000000
fcw: 0x0003 fsw: 0x0000
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users