diff options
Diffstat (limited to 'gdb/gdbthread.h')
-rw-r--r-- | gdb/gdbthread.h | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h index 4b27194..7beccba 100644 --- a/gdb/gdbthread.h +++ b/gdb/gdbthread.h @@ -235,7 +235,6 @@ class thread_info : public refcounted_object, { public: explicit thread_info (inferior *inf, ptid_t ptid); - ~thread_info (); bool deletable () const; @@ -286,9 +285,21 @@ public: /* The inferior this thread belongs to. */ struct inferior *inf; - /* The name of the thread, as specified by the user. This is NULL - if the thread does not have a user-given name. */ - char *name = NULL; + /* The user-given name of the thread. + + Returns nullptr if the thread does not have a user-given name. */ + const char *name () const + { + return m_name.get (); + } + + /* Set the user-given name of the thread. + + Pass nullptr to clear the name. */ + void set_name (gdb::unique_xmalloc_ptr<char> name) + { + m_name = std::move (name); + } bool executing () const { return m_executing; } @@ -523,6 +534,11 @@ private: /* State of inferior thread to restore after GDB is done with an inferior call. See `struct thread_suspend_state'. */ thread_suspend_state m_suspend; + + /* The user-given name of the thread. + + Nullptr if the thread does not have a user-given name. */ + gdb::unique_xmalloc_ptr<char> m_name; }; using thread_info_resumed_with_pending_wait_status_node @@ -953,4 +969,10 @@ extern void print_selected_thread_frame (struct ui_out *uiout, alive anymore. */ extern void thread_select (const char *tidstr, class thread_info *thr); +/* Return THREAD's name. + + If THREAD has a user-given name, return it. Otherwise, query the thread's + target to get the name. May return nullptr. */ +extern const char *thread_name (thread_info *thread); + #endif /* GDBTHREAD_H */ |