[Lldb-commits] [lldb] [lldb] Set the stop reason when receiving swbreak/hwbreak (PR #108518)
via lldb-commits
lldb-commits at lists.llvm.org
Fri Sep 13 01:57:29 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Jason Molenda (jasonmolenda)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/108518.diff
1 Files Affected:
- (modified) lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (+2)
``````````diff
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) {
``````````
</details>
https://github.com/llvm/llvm-project/pull/108518
More information about the lldb-commits
mailing list