Skip to content

Commit fc59b01

Browse files
committed
Make "thread find" hit lane target IDs as well
(gdb) info threads Id Target Id Frame 1 Thread 0x7ffff66fb880 (LWP 4151298) "bit_extract" 0x00007ffff6d3c50b in ioctl () at ../sysdeps/unix/syscall-template.S:78 2 Thread 0x7ffff66fa700 (LWP 4151306) "bit_extract" 0x00007ffff6d3c50b in ioctl () at ../sysdeps/unix/syscall-template.S:78 4 Thread 0x7ffff5c7f700 (LWP 4151308) "bit_extract" 0x00007ffff6d3c50b in ioctl () at ../sysdeps/unix/syscall-template.S:78 * 5 AMDGPU Thread 1:1:1:1 (0,0,0)/0 "bit_extract" bit_extract_kernel (C_d=<optimized out>, A_d=<optimized out>, N=<optimized out>) at bit_extract.cpp:38 (gdb) info lane Id State Target Id Frame * 0 A AMDGPU Lane 1:1:1:1/0 (0,0,0)[0,0,0] bit_extract_kernel (C_d=<optimized out>, A_d=<optimized out>, N=<optimized out>) at bit_extract.cpp:38 1 A AMDGPU Lane 1:1:1:1/1 (0,0,0)[1,0,0] bit_extract_kernel (C_d=<optimized out>, A_d=<optimized out>, N=<optimized out>) at bit_extract.cpp:38 2 A AMDGPU Lane 1:1:1:1/2 (0,0,0)[2,0,0] bit_extract_kernel (C_d=<optimized out>, A_d=<optimized out>, N=<optimized out>) at bit_extract.cpp:38 (gdb) thread find \[0,0,0\] Thread 5, lane 0 has target id 'AMDGPU Lane 1:1:1:1/0 (0,0,0)[0,0,0]' (gdb) thread find \[1,0,0\] Thread 5, lane 1 has target id 'AMDGPU Lane 1:1:1:1/1 (0,0,0)[1,0,0]' (gdb) Change-Id: I38cd34702edab47478732bb5e52ff536383adfca
1 parent 30ff747 commit fc59b01

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

gdb/thread.c

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2707,12 +2707,33 @@ thread_find_command (const char *arg, int from_tty)
27072707
match++;
27082708
}
27092709

2710-
std::string name = target_pid_to_str (tp->ptid);
2711-
if (!name.empty () && re_exec (name.c_str ()))
2710+
if (tp->has_simd_lanes ())
27122711
{
2713-
gdb_printf (_("Thread %s has target id '%s'\n"),
2714-
print_thread_id (tp), name.c_str ());
2715-
match++;
2712+
gdbarch *arch = target_thread_architecture (tp->ptid);
2713+
int lane_count = gdbarch_used_lanes_count (arch, tp);
2714+
2715+
scoped_restore_current_simd_lane restore_lane (tp);
2716+
2717+
for (int lane = 0; lane < lane_count; ++lane)
2718+
{
2719+
std::string name = target_lane_to_str (tp, lane);
2720+
if (!name.empty () && re_exec (name.c_str ()))
2721+
{
2722+
gdb_printf (_("Thread %s, lane %d has target id '%s'\n"),
2723+
print_thread_id (tp), lane, name.c_str ());
2724+
match++;
2725+
}
2726+
}
2727+
}
2728+
else
2729+
{
2730+
std::string name = target_pid_to_str (tp->ptid);
2731+
if (!name.empty () && re_exec (name.c_str ()))
2732+
{
2733+
gdb_printf (_("Thread %s has target id '%s'\n"),
2734+
print_thread_id (tp), name.c_str ());
2735+
match++;
2736+
}
27162737
}
27172738

27182739
tmp = target_extra_thread_info (tp);

0 commit comments

Comments
 (0)