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

Reply via email to