Re: internal-error inferior_thread(): Assertion `tp' failed

Simon Marchi <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On 2017-04-20 12:07, Luke Dalessandro wrote:
> To reproduce using two shells:
> 
> <shell 1>
> 
> $ cat hello.cpp
> #include <iostream>
> #include <thread>
> using namespace std;
> int main() {
>   thread([](){ cout << "hello world\n”; }).join();
>   return 0;
> }
> 
> $ g++ -pthread -o hello hello.cpp
> 
> $ ./hello
> hello world
> 
> $ valgrind --vgdb-error=0 ./hello
> ==10408== Memcheck, a memory error detector
> ==10408== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et 
> al.
> ==10408== Using Valgrind-3.13.0.SVN and LibVEX; rerun with -h for 
> copyright info
> ==10408== Command: ./hello
> ==10408==
> ==10408== (action at startup) vgdb me ...
> ==10408==
> ==10408== TO DEBUG THIS PROCESS USING GDB: start GDB like this
> ==10408==   /path/to/gdb ./hello
> ==10408== and then give GDB the following command
> ==10408==   target remote |
> /u/ldalessa/.local/modules/valgrind/HEAD/lib/valgrind/../../bin/vgdb
> --pid=10408
> ==10408== --pid is optional if only one valgrind process is running
> ==10408==
> 
> <shell 2>
> 
> $ gdb ./hello
> GNU gdb (GDB) 8.0.50.20170420-git
> Copyright (C) 2017 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".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from ./hello...(no debugging symbols found)…done.
> 
> (gdb) target remote |
> /u/ldalessa/.local/modules/valgrind/HEAD/lib/valgrind/../../bin/vgdb
> --pid=10408
> Remote debugging using |
> /u/ldalessa/.local/modules/valgrind/HEAD/lib/valgrind/../../bin/vgdb
> --pid=10408
> relaying data between gdb and process 10408
> warning: remote target does not support file transfer, attempting to
> access files from local filesystem.
> Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
> from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
> done.
> 0x00000000040012d0 in _start () from /lib64/ld-linux-x86-64.so.2
> 
> (gdb) c
> Continuing.
> thread.c:100: internal-error: thread_info* inferior_thread():
> Assertion `tp' failed.
> A problem internal to GDB has been detected,
> further debugging may prove unreliable.
> Quit this debugging session? (y or n) y
> 
> This is a bug, please report it.  For instructions, see:
> <http://www.gnu.org/software/gdb/bugs/>.
> 
> thread.c:100: internal-error: thread_info* inferior_thread():
> Assertion `tp' failed.
> A problem internal to GDB has been detected,
> further debugging may prove unreliable.
> Create a core file of GDB? (y or n) y
> Aborted (core dumped)

I've tried those steps and the program runs to completion normally.

I am using valgrind-3.10.1 and 8.0.50.20170420-git.

> If this is really a bug I can just report along with the gdb stack
> trace via bugzilla. I just wanted to verify that there’s not something
> obvious on my end that would cause this.

An internal error from GDB is always a bug.  If you could report it in 
bugzilla with as much details as you can, it would be appreciated.

Thanks!

Simon
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.