Re: deal thread id as unsigned

Daniel Jacobowitz
2007-05-14T16:53:41Z

On Tue, Apr 17, 2007 at 11:01:43AM +0900, Yoriko Komatsuzaki wrote:
>
> Thank you for your reply and suggestion.
>
> I get my mind around no modification of defs.h because of the care for other
> os'es.
>
> Concerning to thread id printing, I would appreciate it if you could
> consider to print it by hexadecimal notation.

Yes, this is a good idea. Sorry for the delay; I checked in this
patch, to change the output to hexadecimal. Tested on x86_64-linux.

I've just realized that the test change won't work on remote
debugging; I'll fix up linux-dp.exp.

--
Daniel Jacobowitz
CodeSourcery

2007-05-14 Daniel Jacobowitz <dan@codesourcery.com>

* linux-thread-db.c (thread_db_pid_to_str): Print thread IDs
as hexadecimal.

* gdb.threads/linux-dp.exp: Expect hexadecimal thread IDs.
* gdb.threads/print-threads.exp (test_all_threads): Allow
negative and hexadecimal thread IDs.

Index: linux-thread-db.c
===================================================================
RCS file: /cvs/src/src/gdb/linux-thread-db.c,v
retrieving revision 1.29
diff -u -p -r1.29 linux-thread-db.c
--- linux-thread-db.c 11 May 2007 19:55:19 -0000 1.29
+++ linux-thread-db.c 14 May 2007 16:49:49 -0000
@@ -1013,10 +1013,10 @@ thread_db_pid_to_str (ptid_t ptid)

thread_info = find_thread_pid (ptid);
if (thread_info == NULL)
- snprintf (buf, sizeof (buf), "Thread %ld (LWP %ld) (Missing)",
+ snprintf (buf, sizeof (buf), "Thread 0x%lx (LWP %ld) (Missing)",
GET_THREAD (ptid), GET_LWP (ptid));
else
- snprintf (buf, sizeof (buf), "Thread %ld (LWP %ld)",
+ snprintf (buf, sizeof (buf), "Thread 0x%lx (LWP %ld)",
GET_THREAD (ptid), GET_LWP (ptid));

return buf;
Index: testsuite/gdb.threads/linux-dp.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/linux-dp.exp,v
retrieving revision 1.15
diff -u -p -r1.15 linux-dp.exp
--- testsuite/gdb.threads/linux-dp.exp 9 Jan 2007 17:59:14 -0000 1.15
+++ testsuite/gdb.threads/linux-dp.exp 14 May 2007 16:49:50 -0000
@@ -74,7 +74,7 @@ for {set i 0} {$i < 5} {incr i} {
-re "info threads\r\n" {
exp_continue
}
- -re "^. +(\[0-9\]+ Thread \[-0-9\]+) \[^\n\]*\n" {
+ -re "^. +(\[0-9\]+ Thread 0x\[0-9a-f\]+) \[^\n\]*\n" {
verbose -log "found thread $expect_out(1,string)" 2
lappend threads_before $expect_out(1,string)
exp_continue
@@ -147,7 +147,7 @@ for {set i 0} {$i < 5} {incr i} {
-re "info threads\r\n" {
exp_continue
}
- -re "^. +(\[0-9\]+ Thread \[-0-9\]+) \[^\n\]*\n" {
+ -re "^. +(\[0-9\]+ Thread 0x\[0-9a-f\]+) \[^\n\]*\n" {
set name $expect_out(1,string)
for {set j 0} {$j != [llength $threads_before] } {incr j} {
if {$name == [lindex $threads_before $j]} {
Index: testsuite/gdb.threads/print-threads.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/print-threads.exp,v
retrieving revision 1.7
diff -u -p -r1.7 print-threads.exp
--- testsuite/gdb.threads/print-threads.exp 9 Jan 2007 17:59:14 -0000 1.7
+++ testsuite/gdb.threads/print-threads.exp 14 May 2007 16:49:50 -0000
@@ -94,7 +94,7 @@ proc test_all_threads { name kill } {
fail "all threads ran once ($name) (total $i threads ran)"
}
}
- -re "Program received signal SIGTRAP.*(Thread \[0-9\]* \\(zombie\\)|0x00000000 in ).*$gdb_prompt $" {
+ -re "Program received signal SIGTRAP.*(Thread \[-0-9a-fx\]* \\(zombie\\)|0x00000000 in ).*$gdb_prompt $" {
if { $kill == 1 } {
kfail "gdb/1265" "Running threads ($name) (zombie thread)"
} else {