[Lldb-commits] [lldb] 65a4d11 - [lldb] Set the stop reason when receiving swbreak/hwbreak (#108518)

via lldb-commits lldb-commits at lists.llvm.org
Fri Sep 13 09:04:31 PDT 2024


Author: Jason Molenda
Date: 2024-09-13T09:04:28-07:00
New Revision: 65a4d11b1e67429d53df1fcee0f93492aa95c448

URL: https://github.com/llvm/llvm-project/commit/65a4d11b1e67429d53df1fcee0f93492aa95c448
DIFF: https://github.com/llvm/llvm-project/commit/65a4d11b1e67429d53df1fcee0f93492aa95c448.diff

LOG: [lldb] Set the stop reason when receiving swbreak/hwbreak (#108518)

xusheng added support for swbreak/hwbreak a month ago, and no special
support was needed in ProcessGDBRemote when they're received because
lldb already marks a thread as having hit a breakpoint when it stops at
a breakpoint site. However, with changes I am working on, we need to
know the real stop reason a thread stopped or the breakpoint hit will
not be recognized.

This is similar to how lldb processes the "watch/rwatch/awatch" keys in
a thread stop packet -- we set the `reason` to `watchpoint`, and these
set it to `breakpoint` so we set the stop reason correctly later in
these methods.

Added: 
    

Modified: 
    lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index 5eaf9ce2a302aa..271ff61a7188a6 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -2317,6 +2317,8 @@ StateType ProcessGDBRemote::SetThreadStopInfo(StringExtractor &stop_packet) {
         StreamString ostr;
         ostr.Printf("%" PRIu64, wp_addr);
         description = std::string(ostr.GetString());
+      } else if (key.compare("swbreak") == 0 || key.compare("hwbreak") == 0) {
+        reason = "breakpoint";
       } else if (key.compare("library") == 0) {
         auto error = LoadModules();
         if (error) {


        


More information about the lldb-commits mailing list