This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add "thread-exited" annotation



Gentle ping.

Thanks!

Amos Bird <amosbird@gmail.com> writes:

Hi Pedro,

Thanks for the suggestion. Patch updated.

Amos

Pedro Alves <palves@redhat.com> writes:

On 5/17/19 4:51 PM, Amos Bird wrote:
+proc thread_exit {} {
+    global decimal
+    gdb_test_multiple "call (void)pthread_exit()" "thread
exit" {

Since this is calling a function, it would need to be gated
with a gdb,cannot_call_functions check (grep for uses).

Does that call return?  If the thread exits, the "call" command
will
continue running without returning to the prompt, right?

I guess that's why you don't expect the prompt here:

+    gdb_test_multiple "call (void)pthread_exit()" "thread
exit" {
+	-re
".*\032\032thread-exited,id=\"${decimal}\",group-id=\"i${decimal}\""
{
+	    pass "thread exit"
+	}
+    }
+}

Note that this approach means that if someone were to add a test
after this one, we'd need to either ctrl-c the program, or
restart
gdb.

Please test this with

 make check RUNTESTFLAGS="--target_board=native-gdbserver"

too.  In that case, you're debugging with gdbserver, and
gdb/gdbserver
won't notice that the thread exited until the program next
stops.

Also, you probably don't have debug info for glibc/libpthread in
your
system.  I say this because pthread_exit takes an argument and
above
you're not passing any, resulting in undefined behavior.

I'd be much better if the .c file were tweaked to make the
thread
exit on its own, or a new .c file were added for that purpose,
IMO.
E.g., make the main thread join a child thread and hit a
breakpoint
once the thread exits and the join unlocks.

+	-re
".*\032\032thread-exited,id=\"${decimal}\",group-id=\"i${decimal}\""
{
+	    pass "thread exit"
+	}
+    }
+}
+
 thread_test
 thread_switch
+thread_exit

 # restore the original prompt for the rest of the testsuite

Thanks,
Pedro Alves


--
Amos Bird
amosbird@gmail.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]