[Lldb-commits] [lldb] [lldb][DWARFIndex][nfc] Factor out fully qualified name query (PR #76977)

2024-01-05 Thread Greg Clayton via lldb-commits
@@ -102,6 +110,12 @@ class DWARFIndex { } void ReportInvalidDIERef(DIERef ref, llvm::StringRef name) const; + + /// Implementation of `GetFullyQualifiedType` to check a single entry, + /// shareable with derived classes. clayborg wrote: > I'm glad you a

[Lldb-commits] [lldb] [lldb] Fix expressions that involve nested structs/classes/unions. (PR #77029)

2024-01-05 Thread Greg Clayton via lldb-commits
https://github.com/clayborg closed https://github.com/llvm/llvm-project/pull/77029 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb] Fix expressions that involve nested structs/classes/unions. (PR #77029)

2024-01-05 Thread Greg Clayton via lldb-commits
clayborg wrote: > Thanks for the fix! I did test this patch with both our regression issue, and > also allowing us to remove the double-lookup working around #53904 and can > confirm it addressed both issues. Thanks again! Glad it worked! It will also be a huge improvement in the expression pa

[Lldb-commits] [lldb] [lldb][[DWARFDeclContext] Add function to extract qualified names as vector (PR #77349)

2024-01-09 Thread Greg Clayton via lldb-commits
@@ -68,6 +68,11 @@ class DWARFDeclContext { const char *GetQualifiedName() const; + /// Returns a vector of string, one string per entry in the fully qualified + /// name. For example, for the DeclContext `A::B::C`, this methods returns + /// `{"C", "B", "A"}` + llvm::S

[Lldb-commits] [lldb] [lldb][[DWARFDeclContext] Add function to extract qualified names as vector (PR #77349)

2024-01-09 Thread Greg Clayton via lldb-commits
@@ -68,6 +68,11 @@ class DWARFDeclContext { const char *GetQualifiedName() const; + /// Returns a vector of string, one string per entry in the fully qualified + /// name. For example, for the DeclContext `A::B::C`, this methods returns + /// `{"C", "B", "A"}` + llvm::S

[Lldb-commits] [lldb] [lldb][[DWARFDeclContext] Add function to extract qualified names as vector (PR #77349)

2024-01-09 Thread Greg Clayton via lldb-commits
@@ -68,6 +68,11 @@ class DWARFDeclContext { const char *GetQualifiedName() const; + /// Returns a vector of string, one string per entry in the fully qualified + /// name. For example, for the DeclContext `A::B::C`, this methods returns + /// `{"C", "B", "A"}` + llvm::S

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-09 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/77547 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-09 Thread Greg Clayton via lldb-commits
https://github.com/clayborg approved this pull request. The roots of this look really good. A few nits we can choose to fix or do in another patch. https://github.com/llvm/llvm-project/pull/77547 ___ lldb-commits mailing list lldb-commits@lists.llvm.

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-09 Thread Greg Clayton via lldb-commits
@@ -519,8 +519,7 @@ void SymbolFileDWARF::InitializeObject() { if (apple_names.GetByteSize() > 0 || apple_namespaces.GetByteSize() > 0 || apple_types.GetByteSize() > 0 || apple_objc.GetByteSize() > 0) { - Progress progress(llvm::formatv("Loading Apple DWARF in

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-09 Thread Greg Clayton via lldb-commits
@@ -532,8 +531,7 @@ void SymbolFileDWARF::InitializeObject() { DWARFDataExtractor debug_names; LoadSectionData(eSectionTypeDWARFDebugNames, debug_names); if (debug_names.GetByteSize() > 0) { - Progress progress( - llvm::formatv("Loading DWARF5 index fo

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-09 Thread Greg Clayton via lldb-commits
@@ -69,7 +69,8 @@ class Progress { /// /// @param [in] debugger An optional debugger pointer to specify that this /// progress is to be reported only to specific debuggers. - Progress(std::string title, uint64_t total = UINT64_MAX, + Progress(std::string title, std::str

[Lldb-commits] [lldb] Add settings and code that limits the number of progress events. (PR #75769)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -1430,6 +1445,279 @@ void Debugger::SetDestroyCallback( m_destroy_callback_baton = baton; } + + /// Notify the progress thread that there is new progress data. +void Debugger::NotifyProgress(std::unique_ptr &data_up) { + // Start the progress thread if it isn't already

[Lldb-commits] [lldb] [lldb-dap] Updating VariableDescription to use GetDescription() as a fallback. (PR #77026)

2024-01-10 Thread Greg Clayton via lldb-commits
clayborg wrote: > > Looks fine to me. Can we add a test? > > Updated the existing tests to check the adjusted format. > > One issue I did notice with tests is that the response to an expression will > include a response are automatically persisted by > `SBValue::GetDescription()`, so you will

[Lldb-commits] [lldb] [lldb-dap] Updating VariableDescription to use GetDescription() as a fallback. (PR #77026)

2024-01-10 Thread Greg Clayton via lldb-commits
clayborg wrote: Is there a way we can tell that the request is from the console and only enable this feature if we are going to dump it to the debug console? https://github.com/llvm/llvm-project/pull/77026 ___ lldb-commits mailing list lldb-commits@li

[Lldb-commits] [lldb] Fix debug info size statistics for split dwarf (PR #77671)

2024-01-10 Thread Greg Clayton via lldb-commits
https://github.com/clayborg commented: Looks good, need to add tests for: - split dwarf with .dwo files - split dwarf with .dwp file https://github.com/llvm/llvm-project/pull/77671 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists

[Lldb-commits] [lldb] [lldb-dap] Updating VariableDescription to use GetDescription() as a fallback. (PR #77026)

2024-01-10 Thread Greg Clayton via lldb-commits
clayborg wrote: > > Is there a way we can tell that the request is from the console and only > > enable this feature if we are going to dump it to the debug console? > > Yea, the DAP has a context we can use to limit this > https://microsoft.github.io/debug-adapter-protocol/specification#Reque

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/77547 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
https://github.com/clayborg commented: A bit more cleanup, see inline comment https://github.com/llvm/llvm-project/pull/77547 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -51,9 +56,10 @@ void Progress::Increment(uint64_t amount, std::string update) { void Progress::ReportProgress(std::string update) { clayborg wrote: remove `std::string update` as we have it in `m_details` https://github.com/llvm/llvm-project/pull/77547

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -30,18 +34,19 @@ Progress::~Progress() { // Make sure to always report progress completed when this object is // destructed so it indicates the progress dialog/activity should go away. std::lock_guard guard(m_mutex); - if (!m_completed) -m_completed = m_total; +

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -30,18 +34,19 @@ Progress::~Progress() { // Make sure to always report progress completed when this object is // destructed so it indicates the progress dialog/activity should go away. std::lock_guard guard(m_mutex); - if (!m_completed) -m_completed = m_total; +

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
https://github.com/clayborg requested changes to this pull request. https://github.com/llvm/llvm-project/pull/77547 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -51,9 +56,10 @@ void Progress::Increment(uint64_t amount, std::string update) { void Progress::ReportProgress(std::string update) { if (!m_complete) { // Make sure we only send one notification that indicates the progress is -// complete. -m_complete = m_compl

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -30,18 +34,19 @@ Progress::~Progress() { // Make sure to always report progress completed when this object is // destructed so it indicates the progress dialog/activity should go away. std::lock_guard guard(m_mutex); - if (!m_completed) -m_completed = m_total; +

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -11,15 +11,19 @@ #include "lldb/Core/Debugger.h" #include "lldb/Utility/StreamString.h" +#include + using namespace lldb; using namespace lldb_private; std::atomic Progress::g_id(0); -Progress::Progress(std::string title, uint64_t total, +Progress::Progress(std::str

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/77547 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -96,13 +97,14 @@ class Progress { static std::atomic g_id; /// The title of the progress activity. std::string m_title; + std::string m_details; std::mutex m_mutex; /// A unique integer identifier for progress reporting. const uint64_t m_id; /// How much w

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -35,25 +42,29 @@ Progress::~Progress() { ReportProgress(); } -void Progress::Increment(uint64_t amount, std::string update) { +void Progress::Increment(uint64_t amount, + std::optional updated_detail) { if (amount > 0) { std::lock_guard gua

[Lldb-commits] [lldb] [lldb][Progress] Separate title and details (PR #77547)

2024-01-10 Thread Greg Clayton via lldb-commits
@@ -35,25 +42,29 @@ Progress::~Progress() { ReportProgress(); } -void Progress::Increment(uint64_t amount, std::string update) { +void Progress::Increment(uint64_t amount, + std::optional updated_detail) { if (amount > 0) { std::lock_guard gua

[Lldb-commits] [lldb] Fix debug info size statistics for split dwarf (PR #77671)

2024-01-10 Thread Greg Clayton via lldb-commits
clayborg wrote: > > Looks good, need to add tests for: > > > > * split dwarf with .dwo files > > * split dwarf with .dwp file > > @clayborg, do you have suggestion regarding how to test `GetDebugInfoSize()` > for dwo/dwp? yes, for either we just add up the size of any debug info sections for

[Lldb-commits] [lldb] [lldb-dap] Updating VariableDescription to use GetDescription() as a fallback. (PR #77026)

2024-01-11 Thread Greg Clayton via lldb-commits
@@ -405,6 +405,9 @@ struct VariableDescription { /// Create a JSON object that represents these extensions to the DAP variable /// response. llvm::json::Object GetVariableExtensionsJSON(); + + /// Returns a description of the value appropraite for the specified context.

[Lldb-commits] [lldb] [lldb-dap] Updating VariableDescription to use GetDescription() as a fallback. (PR #77026)

2024-01-11 Thread Greg Clayton via lldb-commits
@@ -173,21 +173,21 @@ TryCreateAutoSummaryForContainer(lldb::SBValue &v) { lldb::SBValue child = v.GetChildAtIndex(i); if (llvm::StringRef name = child.GetName(); !name.empty()) { - llvm::StringRef value; + llvm::StringRef desc; if (llvm::StringRef sum

[Lldb-commits] [lldb] [lldb-dap] Updating VariableDescription to use GetDescription() as a fallback. (PR #77026)

2024-01-11 Thread Greg Clayton via lldb-commits
@@ -1210,15 +1210,16 @@ bool SBValue::GetDescription(SBStream &description) { ValueLocker locker; lldb::ValueObjectSP value_sp(GetSP(locker)); - if (value_sp) { -DumpValueObjectOptions options; -options.SetUseDynamicType(m_opaque_sp->GetUseDynamic()); -options

[Lldb-commits] [lldb] 07c215e - Fix shared library loading when users define duplicate _r_debug structure.

2023-08-31 Thread Greg Clayton via lldb-commits
Author: Greg Clayton Date: 2023-08-31T10:37:20-07:00 New Revision: 07c215e8a8af54d0084af7291ac29fef3672fcd8 URL: https://github.com/llvm/llvm-project/commit/07c215e8a8af54d0084af7291ac29fef3672fcd8 DIFF: https://github.com/llvm/llvm-project/commit/07c215e8a8af54d0084af7291ac29fef3672fcd8.diff

[Lldb-commits] [lldb] d4a141e - Switch over to using the LLVM archive parser for BSD archives.

2023-09-05 Thread Greg Clayton via lldb-commits
Author: Greg Clayton Date: 2023-09-05T16:54:05-07:00 New Revision: d4a141ef932a596df61581090b70d0b546de68b2 URL: https://github.com/llvm/llvm-project/commit/d4a141ef932a596df61581090b70d0b546de68b2 DIFF: https://github.com/llvm/llvm-project/commit/d4a141ef932a596df61581090b70d0b546de68b2.diff

[Lldb-commits] [lldb] [lldb-vscode] Show a fake child with the raw value of synthetic types (PR #65552)

2023-09-07 Thread Greg Clayton via lldb-commits
clayborg wrote: Not sure I like this showing up all of the time. It is fine for people that want to debug synthetic child providers, but seeing this all of the time adds noise to the variable window for no real benefit. I believe that plug-ins can have settings within VS code and it would be n

[Lldb-commits] [lldb] [lldb-vscode] Display a more descriptive summary for containers and pointers (PR #65514)

2023-09-07 Thread Greg Clayton via lldb-commits
https://github.com/clayborg commented: This will cause large performance regressions when debugging large complex codebases due to the extra type completions that will now happen every time you stop somewhere and view variables. https://github.com/llvm/llvm-project/pull/65514 _

[Lldb-commits] [lldb] [lldb-vscode] Display a more descriptive summary for containers and pointers (PR #65514)

2023-09-07 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/65514 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb-vscode] Display a more descriptive summary for containers and pointers (PR #65514)

2023-09-07 Thread Greg Clayton via lldb-commits
@@ -132,6 +132,84 @@ std::vector GetStrings(const llvm::json::Object *obj, return strs; } +/// Create a short summary for a container that contains the summary of its +/// first children, so that the user can get a glimpse of its contents at a +/// glance. +static std::opti

[Lldb-commits] [lldb] [lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (PR #65687)

2023-09-08 Thread Greg Clayton via lldb-commits
https://github.com/clayborg requested changes to this pull request. https://github.com/llvm/llvm-project/pull/65687 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (PR #65687)

2023-09-08 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/65687 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (PR #65687)

2023-09-08 Thread Greg Clayton via lldb-commits
@@ -240,6 +240,16 @@ "timeout": { "type": "string", "description": "The time in seconds to wait

[Lldb-commits] [lldb] [lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (PR #65687)

2023-09-08 Thread Greg Clayton via lldb-commits
@@ -240,6 +240,16 @@ "timeout": { "type": "string", "description": "The time in seconds to wait

[Lldb-commits] [lldb] [lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (PR #65687)

2023-09-08 Thread Greg Clayton via lldb-commits
@@ -240,6 +240,16 @@ "timeout": { "type": "string", "description": "The time in seconds to wait

[Lldb-commits] [lldb] [lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (PR #65687)

2023-09-08 Thread Greg Clayton via lldb-commits
@@ -40,7 +40,8 @@ VSCode::VSCode() {"swift_catch", "Swift Catch", lldb::eLanguageTypeSwift}, {"swift_throw", "Swift Throw", lldb::eLanguageTypeSwift}}), focus_tid(LLDB_INVALID_THREAD_ID), sent_terminated_event(false), - stop_at_entry(false), is_

[Lldb-commits] [lldb] [lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (PR #65687)

2023-09-08 Thread Greg Clayton via lldb-commits
@@ -240,6 +240,16 @@ "timeout": { "type": "string", "description": "The time in seconds to wait

[Lldb-commits] [lldb] Fix a bug with cancelling "attach -w" after you have run a process previously (PR #65822)

2023-09-09 Thread Greg Clayton via lldb-commits
https://github.com/clayborg commented: A different way to approach this fix is to just fix ExecutionContext so that this can never be out of date by removing the "m_process_sp" member variable. Is is not great that we can an execution context that has an older process, and would we ever want a

[Lldb-commits] [lldb] [lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (PR #65687)

2023-09-09 Thread Greg Clayton via lldb-commits
https://github.com/clayborg approved this pull request. Looks good! https://github.com/llvm/llvm-project/pull/65687 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-11 Thread Greg Clayton via lldb-commits
clayborg wrote: > I don't think the lldb command line dumps raw JSON anywhere as a command > result. Can we make something a little more human readable? It was my idea to make this JSON. The problem is each debug info (.dwo and DWARF in .o files for Mac) has very different fields and pretty pr

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-11 Thread Greg Clayton via lldb-commits
clayborg wrote: We also want to show the .dwo error or OSO error strings that explain why the file wasn't loaded as we see when we do "frame variable" and the OSO or DWO are missing. https://github.com/llvm/llvm-project/pull/66035 ___ lldb-commits m

[Lldb-commits] [lldb] [lldb][Commands] Show symbol change bit in SB API (PR #66144)

2023-09-12 Thread Greg Clayton via lldb-commits
@@ -83,7 +83,7 @@ class Debugger : public std::enable_shared_from_this, eBroadcastBitProgress = (1 << 0), eBroadcastBitWarning = (1 << 1), eBroadcastBitError = (1 << 2), -eBroadcastSymbolChange = (1 << 3), +eBroadcastBitSymbolChange = (1 << 3),

[Lldb-commits] [lldb] [lldb][Commands] Show symbol change bit in SB API (PR #66144)

2023-09-12 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/66144 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb][Commands] Show symbol change bit in SB API (PR #66144)

2023-09-12 Thread Greg Clayton via lldb-commits
@@ -46,6 +47,7 @@ class LLDB_API SBDebugger { eBroadcastBitProgress = (1 << 0), eBroadcastBitWarning = (1 << 1), eBroadcastBitError = (1 << 2), + eBroadcastBitSymbolChange = (1 << 3), clayborg wrote: See comment below about possible name

[Lldb-commits] [lldb] [lldb][Commands] Show symbol change bit in SB API (PR #66144)

2023-09-12 Thread Greg Clayton via lldb-commits
https://github.com/clayborg commented: We should be able to extract the SBModuleSpec from the event in response to the eBroadcastBitSymbolChange event. This will require adding a static method to SBDebugger.h/.cpp to get the SBModuleSpec from the event: ``` static lldb::SBModuleSpec GetModu

[Lldb-commits] [lldb] [lldb][Commands] Show symbol change bit in SB API (PR #66144)

2023-09-12 Thread Greg Clayton via lldb-commits
@@ -13,6 +13,7 @@ #include "lldb/API/SBDefines.h" #include "lldb/API/SBPlatform.h" +#include "lldb/API/SBStructuredData.h" clayborg wrote: This isn't needed in the header file right? Move to SBDebugger.cpp if it is still needed? No mention of SBStructuredDat

[Lldb-commits] [lldb] Fix a bug with cancelling "attach -w" after you have run a process previously (PR #65822)

2023-09-12 Thread Greg Clayton via lldb-commits
clayborg wrote: > It seems a bit weird to have an Execution context with a thread and a stack > frame but not the process they belong to. I don't know that it would really > help either. Even if you removed the process so that you no longer had to > check for that being invalid, if a thread or

[Lldb-commits] [lldb] Fix a bug with cancelling "attach -w" after you have run a process previously (PR #65822)

2023-09-12 Thread Greg Clayton via lldb-commits
clayborg wrote: So if we use the ExecutionContextScope and init a ExectionContext with a target, it can calculate the process and target. If you init it with a thread, it can calculate the thread, process and target. And if you init it with a frame, it can get the frame, thread, process and ta

[Lldb-commits] [lldb] [lldb] Add a setting to customize the prompt color (PR #66218)

2023-09-13 Thread Greg Clayton via lldb-commits
https://github.com/clayborg commented: Any interest in just allowing "settings set prompt" to use the format strings approach that we support in thread-format, frame-format? I see we have a ton of settings that already ansi-prefix and ansi-suffix settings, but it would be easy to just do: ```

[Lldb-commits] [lldb] Fix a bug with cancelling "attach -w" after you have run a process previously (PR #65822)

2023-09-13 Thread Greg Clayton via lldb-commits
clayborg wrote: > This seems like a much wider ranging change than is required to fix this bug. > I'm all for rethinking the > ExecutionContextScope/ExecutionContext/ExecutionContextRef nexus, but I don't > think that's a trivial rethink, and I don't have the time to undertake that > right no

[Lldb-commits] [lldb] [lldb] Support Unicode in the prompt (PR #66312)

2023-09-13 Thread Greg Clayton via lldb-commits
https://github.com/clayborg approved this pull request. https://github.com/llvm/llvm-project/pull/66312 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-13 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/66308 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-13 Thread Greg Clayton via lldb-commits
https://github.com/clayborg commented: Since users probably want a behavior like GDB by default, one idea is to just add a setting: ``` (llldb) settings show target.watchpoint-stop-on-write [always|changed] ``` When watchpoints are set, they just read the current value for this. Most of your in

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-13 Thread Greg Clayton via lldb-commits
@@ -0,0 +1,17 @@ +#include +int main() { + int value = 5; + + value = 5; // break here + value = 5; + value = 5; + value = 5; + value = 5; + value = 5; + value = 10; + value = 10; clayborg wrote: Can we check that it stops when the value changes from 10

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-13 Thread Greg Clayton via lldb-commits
@@ -211,6 +212,35 @@ bool Watchpoint::CaptureWatchedValue(const ExecutionContext &exe_ctx) { return (m_new_value_sp && m_new_value_sp->GetError().Success()); } +bool Watchpoint::WatchedValueReportable(const ExecutionContext &exe_ctx) { + if (!m_watch_modify) +return tr

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-13 Thread Greg Clayton via lldb-commits
@@ -0,0 +1,17 @@ +#include +int main() { + int value = 5; clayborg wrote: If you take the address of "value" then it will always be in memory. Here we might be just getting lucky that the compiler choses to put this on the stack at -O0. https://github.com/ll

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-13 Thread Greg Clayton via lldb-commits
@@ -0,0 +1,17 @@ +#include +int main() { + int value = 5; + + value = 5; // break here + value = 5; + value = 5; + value = 5; + value = 5; + value = 5; + value = 10; + value = 10; clayborg wrote: We could change it back to 5 to ensure that the watchpoin

[Lldb-commits] [lldb] [lldb][Commands] Show symbol change bit in SB API (PR #66144)

2023-09-13 Thread Greg Clayton via lldb-commits
@@ -57,6 +57,29 @@ def test_add_dsym_with_dSYM_bundle(self): self.exe_name = "a.out" self.do_add_dsym_with_dSYM_bundle(self.exe_name) +@no_debug_info_test +def test_report_symbol_load(self): +"""Test that when adding a symbol file, the eBroadcas

[Lldb-commits] [lldb] [lldb][Commands] Show symbol change bit in SB API (PR #66144)

2023-09-13 Thread Greg Clayton via lldb-commits
@@ -83,7 +83,7 @@ class Debugger : public std::enable_shared_from_this, eBroadcastBitProgress = (1 << 0), eBroadcastBitWarning = (1 << 1), eBroadcastBitError = (1 << 2), -eBroadcastSymbolChange = (1 << 3), +eBroadcastBitSymbolFileChange = (1 << 3),

[Lldb-commits] [lldb] [lldb] Add a setting to customize the prompt color (PR #66218)

2023-09-13 Thread Greg Clayton via lldb-commits
https://github.com/clayborg approved this pull request. https://github.com/llvm/llvm-project/pull/66218 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb] Accept optional module in Value::ResolveValue (PR #66286)

2023-09-13 Thread Greg Clayton via lldb-commits
https://github.com/clayborg commented: Is this change testable in a test case? I assume it must be somehow as it is fixing a bug? https://github.com/llvm/llvm-project/pull/66286 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.l

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-14 Thread Greg Clayton via lldb-commits
clayborg wrote: > > > Just to be clear, I need to find a solution for > > > SBTarget::CreateWatchpoint before this PR is ready to land. I'm inclined > > > towards adding a third bool parameter 'modify', but I'm not sure that's > > > the best choice. > > > > > > Anytime we keep adding more op

[Lldb-commits] [lldb] [lldb] Accept optional module in Value::ResolveValue (PR #66286)

2023-09-14 Thread Greg Clayton via lldb-commits
clayborg wrote: > @clayborg as Adrian said, this fixes a test failure downstream. I don't > there's any visible change in behavior to test in main, unfortunately. Gotcha. Let me guess: Swift? :-) https://github.com/llvm/llvm-project/pull/66286 ___ l

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-14 Thread Greg Clayton via lldb-commits
https://github.com/clayborg requested changes to this pull request. https://github.com/llvm/llvm-project/pull/66035 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-14 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/66035 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-14 Thread Greg Clayton via lldb-commits
@@ -459,6 +470,14 @@ class SymbolFile : public PluginInterface { virtual void GetCompileOptions( std::unordered_map &args) {} + /// If separate debug info files are supported and this function succeeded, + /// return some string representing the type of debug info. E

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-14 Thread Greg Clayton via lldb-commits
@@ -162,6 +163,21 @@ void SymbolFile::AssertModuleLock() { SymbolFile::RegisterInfoResolver::~RegisterInfoResolver() = default; +bool SymbolFile::ListSeparateDebugInfoFiles(StructuredData::Dictionary &d) { + StructuredData::Array array; + std::optional debug_info_type = Ge

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-14 Thread Greg Clayton via lldb-commits
@@ -2035,8 +2118,8 @@ class CommandObjectTargetModulesDumpSymtab result.GetOutputStream().EOL(); result.GetOutputStream().EOL(); } - if (INTERRUPT_REQUESTED(GetDebugger(), clayborg wrote: It would be

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-14 Thread Greg Clayton via lldb-commits
clayborg wrote: > > ``` > >SBWatchpoint SBTarget::WatchpointCreateByAddress(addr_t address, size_t > > size, uint32_t access_flags, SBError &error); > > ``` > > > > > > > > > > > > > > > > > > > > > > > > with `eWatchpointAccess{Read,Write,Modify}` fl

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-14 Thread Greg Clayton via lldb-commits
https://github.com/clayborg requested changes to this pull request. Just need tests for the non --json output for OSO and DWO. If you can also attach the output of the 4 cases (OSO no errors, OSO with errors, DWO no errors and DWO with errors), that might help people see what this output looks

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-14 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/66035 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-14 Thread Greg Clayton via lldb-commits
@@ -11,6 +11,7 @@ #include "DIERef.h" #include "lldb/Symbol/SymbolFile.h" +#include "lldb/Utility/ConstString.h" clayborg wrote: Remove this now that we aren't returning a std::optional https://github.com/llvm/llvm-project/pull/66035

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-14 Thread Greg Clayton via lldb-commits
clayborg wrote: > You and Alex both preferred adding an Options class to pass in to this (and > future WatchpointCreate API) so I'll write that up for my next revision of > this PR, I didn't see your earlier message talking about your preference for > that when I ping'ed Alex on their opinion.

[Lldb-commits] [lldb] [lldb][Commands] Show symbol change bit in SB API (PR #66144)

2023-09-14 Thread Greg Clayton via lldb-commits
@@ -57,6 +57,29 @@ def test_add_dsym_with_dSYM_bundle(self): self.exe_name = "a.out" self.do_add_dsym_with_dSYM_bundle(self.exe_name) +@no_debug_info_test +def test_report_symbol_load(self): +"""Test that when adding a symbol file, the eBroadcas

[Lldb-commits] [lldb] Add `target modules dump separate-debug-info` (PR #66035)

2023-09-15 Thread Greg Clayton via lldb-commits
clayborg wrote: > I think it would be easier to read the output if you made a separate column > for "error". If you imagine a listing where there are 100 OSO's of which 10 > are missing, the paths are going to jump over because of the "error: ..." at > the beginning of those lines making it me

[Lldb-commits] [lldb] [lldb-vscode] Show value addresses in a short format (PR #66534)

2023-09-15 Thread Greg Clayton via lldb-commits
https://github.com/clayborg requested changes to this pull request. I would rather we add a new setting in lldb that controls if we see hex values with leading zeroes and allow users to set this. It will be _very_ easy to fix this as all you need to do is fix lldb_private::DumpDataExtractor() a

[Lldb-commits] [lldb] [lldb-vscode] Show value addresses in a short format (PR #66534)

2023-09-15 Thread Greg Clayton via lldb-commits
@@ -228,7 +228,24 @@ void SetValueForKey(lldb::SBValue &v, llvm::json::Object &object, strm << ""; } else { auto tryDumpSummaryAndValue = [&strm](lldb::SBValue value) { - llvm::StringRef val = value.GetValue(); + std::string val; + // Whenever the valu

[Lldb-commits] [lldb] [lldb-vscode] Show value addresses in a short format (PR #66534)

2023-09-15 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/66534 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb-vscode] Show value addresses in a short format (PR #66534)

2023-09-15 Thread Greg Clayton via lldb-commits
clayborg wrote: I have verified that if I change DumpDataExtractor() you can easily do this: ``` case eFormatHex: case eFormatHexUppercase: { bool wantsuppercase = (item_format == eFormatHexUppercase); switch (item_byte_size) { case 1: case 2: case 4: c

[Lldb-commits] [lldb] [lldb-vscode] Show value addresses in a short format (PR #66534)

2023-09-15 Thread Greg Clayton via lldb-commits
clayborg wrote: If you create a setting, be sure to make it a global setting (a bool in the setting definition) so it can always be accessed via: ``` static TargetProperties &Target::GetGlobalProperties(); ``` https://github.com/llvm/llvm-project/pull/66534 __

[Lldb-commits] [lldb] [lldb-vscode] Show value addresses in a short format (PR #66534)

2023-09-15 Thread Greg Clayton via lldb-commits
clayborg wrote: Then no changes are needed for vs code files at all and we can test this with a normal LLDB variable tests. https://github.com/llvm/llvm-project/pull/66534 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.or

[Lldb-commits] [lldb] [LLDB] Add a setting for print hex values without leading zeroes (PR #66548)

2023-09-15 Thread Greg Clayton via lldb-commits
https://github.com/clayborg approved this pull request. Nice! LGTM https://github.com/llvm/llvm-project/pull/66548 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add a setting for print hex values without leading zeroes (PR #66548)

2023-09-15 Thread Greg Clayton via lldb-commits
https://github.com/clayborg edited https://github.com/llvm/llvm-project/pull/66548 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add a setting for print hex values without leading zeroes (PR #66548)

2023-09-15 Thread Greg Clayton via lldb-commits
@@ -620,10 +620,17 @@ lldb::offset_t lldb_private::DumpDataExtractor( case 2: case 4: case 8: -s->Printf(wantsuppercase ? "0x%*.*" PRIX64 : "0x%*.*" PRIx64, - (int)(2 * item_byte_size), (int)(2 * item_byte_size), - DE.

[Lldb-commits] [lldb] [LLDB] Add a setting for print hex values without leading zeroes (PR #66548)

2023-09-15 Thread Greg Clayton via lldb-commits
https://github.com/clayborg requested changes to this pull request. https://github.com/llvm/llvm-project/pull/66548 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [LLDB] Add a setting for printing ValueObject hex values without leading zeroes (PR #66548)

2023-09-15 Thread Greg Clayton via lldb-commits
clayborg wrote: > @jimingham , that's a good catch. Probably I should rename this because I > want this setting to affect only SBValueObject::GetValue(), which is want > ends up being sent to IDEs as a common interface. Trying to control all > places that print as hex value is a bit too much a

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-15 Thread Greg Clayton via lldb-commits
@@ -0,0 +1,44 @@ +//===-- SBWatchpointOptions.h ---*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apa

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-15 Thread Greg Clayton via lldb-commits
@@ -1326,23 +1326,35 @@ lldb::SBWatchpoint SBTarget::WatchAddress(lldb::addr_t addr, size_t size, SBError &error) { LLDB_INSTRUMENT_VA(this, addr, size, read, write, error); + SBWatchpointOptions options; + options.SetWatchpointTy

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-15 Thread Greg Clayton via lldb-commits
@@ -46,7 +46,9 @@ def test_unaligned_watchpoint(self): a_bytebuf_6 = frame.GetValueForVariablePath("a.bytebuf[6]") a_bytebuf_6_addr = a_bytebuf_6.GetAddress().GetLoadAddress(target) err = lldb.SBError() -wp = target.WatchAddress(a_bytebuf_6_addr,

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-15 Thread Greg Clayton via lldb-commits
@@ -0,0 +1,44 @@ +//===-- SBWatchpointOptions.h ---*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apa

[Lldb-commits] [lldb] [lldb] Add 'modify' type watchpoints, make it default (PR #66308)

2023-09-15 Thread Greg Clayton via lldb-commits
@@ -53,7 +53,10 @@ def fuzz_obj(obj): obj.GetByteOrder() obj.GetTriple() error = lldb.SBError() -obj.WatchAddress(123, 8, True, True, error) +wp_opts = lldb.SBWatchpointOptions() +wp_opts.SetWatchpointTypeRead(True) +wp_opts.SetWatchpointTypeModify(T

<    16   17   18   19   20   21   22   23   24   25   >