public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v1] gdb/dap - Getting thread names
@ 2023-06-13  7:10 Simon Farre
  2023-06-13 12:56 ` Tom Tromey
  0 siblings, 1 reply; 2+ messages in thread
From: Simon Farre @ 2023-06-13  7:10 UTC (permalink / raw)
  To: gdb-patches; +Cc: Simon Farre

When testing firefox tests, it is apparent that
_get_threads returns threads with name field = None.

I had initially thought that this was due to Firefox setting the names
using /proc/pid/task/tid/comm, by writing directly to the proc fs the
names, but apparently GDB seems to catch this, because I re-wrote
the basic-dap.exp/c to do this specifically and it saw the changes.

So I couldn't determine right now, what operation of name change that
GDB does not pick up, but with this patch, GDB will pick up the thread
names for an applications that set the name of a thread in ways that
aren't obvious.
---
 gdb/python/lib/gdb/dap/threads.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gdb/python/lib/gdb/dap/threads.py b/gdb/python/lib/gdb/dap/threads.py
index c3b42ee4991..b61fb94dce8 100644
--- a/gdb/python/lib/gdb/dap/threads.py
+++ b/gdb/python/lib/gdb/dap/threads.py
@@ -18,6 +18,12 @@ import gdb
 from .server import request
 from .startup import send_gdb_with_response, in_gdb_thread
 
+def thread_name(thr):
+    if thr.name is not None:
+        return thr.name
+    if thr.details is not None:
+        return thr.details
+    return None
 
 # A helper function to construct the list of threads.
 @in_gdb_thread
@@ -27,7 +33,7 @@ def _get_threads():
         one_result = {
             "id": thr.global_num,
         }
-        name = thr.name
+        name = thread_name(thr)
         if name is not None:
             one_result["name"] = name
         result.append(one_result)
-- 
2.40.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v1] gdb/dap - Getting thread names
  2023-06-13  7:10 [PATCH v1] gdb/dap - Getting thread names Simon Farre
@ 2023-06-13 12:56 ` Tom Tromey
  0 siblings, 0 replies; 2+ messages in thread
From: Tom Tromey @ 2023-06-13 12:56 UTC (permalink / raw)
  To: Simon Farre via Gdb-patches; +Cc: Simon Farre

>>>>> "Simon" == Simon Farre via Gdb-patches <gdb-patches@sourceware.org> writes:

Thanks for the patch.

Simon>  from .startup import send_gdb_with_response, in_gdb_thread
 
Simon> +def thread_name(thr):

It's a convention in the DAP code for internal functions to start with
"_", and also to have a descriptive comment.  Also make sure you run
'black' on the patch (I suspect it would add another blank line before
the def, not sure though).

This is ok with those changes.

Tom

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-13 12:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-13  7:10 [PATCH v1] gdb/dap - Getting thread names Simon Farre
2023-06-13 12:56 ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).