@@ -0,0 +1,108 @@
+//=== wasmRegisterContext.cpp
-===//
+//
+// 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: Ap
@@ -0,0 +1,108 @@
+//=== wasmRegisterContext.cpp
-===//
+//
+// 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: Ap
@@ -2595,6 +2604,37 @@ bool DWARFExpression::Evaluate(
break;
}
+case DW_OP_WASM_location: {
+ uint8_t wasm_op = opcodes.GetU8(&offset);
+ uint32_t index;
+
+ /* LLDB doesn't have an address space to represents WebAssembly locals,
+ * globals
@@ -0,0 +1,108 @@
+//=== wasmRegisterContext.cpp
-===//
+//
+// 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: Ap
@@ -0,0 +1,76 @@
+//===-- UnwindWasm.cpp
===//
+//
+// 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
@@ -0,0 +1,108 @@
+//=== wasmRegisterContext.cpp
-===//
+//
+// 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: Ap
@@ -3944,15 +3955,22 @@ rnb_err_t RNBRemote::HandlePacket_v(const char *p) {
// The order of these checks is important.
if (process_does_not_exist (pid_attaching_to)) {
DNBLogError("Tried to attach to pid that doesn't exist");
- std::string
@@ -3944,15 +3955,22 @@ rnb_err_t RNBRemote::HandlePacket_v(const char *p) {
// The order of these checks is important.
if (process_does_not_exist (pid_attaching_to)) {
DNBLogError("Tried to attach to pid that doesn't exist");
- std::string
@@ -3969,30 +3987,43 @@ rnb_err_t RNBRemote::HandlePacket_v(const char *p) {
process_username = pw->pw_name;
}
DNBLogError("Tried to attach to process with uid mismatch");
- std::string return_message = "E96;";
- std::string msg
@@ -3944,15 +3955,22 @@ rnb_err_t RNBRemote::HandlePacket_v(const char *p) {
// The order of these checks is important.
if (process_does_not_exist (pid_attaching_to)) {
DNBLogError("Tried to attach to pid that doesn't exist");
- std::string
@@ -3969,30 +3987,43 @@ rnb_err_t RNBRemote::HandlePacket_v(const char *p) {
process_username = pw->pw_name;
}
DNBLogError("Tried to attach to process with uid mismatch");
- std::string return_message = "E96;";
- std::string msg
@@ -3944,15 +3955,22 @@ rnb_err_t RNBRemote::HandlePacket_v(const char *p) {
// The order of these checks is important.
if (process_does_not_exist (pid_attaching_to)) {
DNBLogError("Tried to attach to pid that doesn't exist");
- std::string
@@ -3969,30 +3987,43 @@ rnb_err_t RNBRemote::HandlePacket_v(const char *p) {
process_username = pw->pw_name;
}
DNBLogError("Tried to attach to process with uid mismatch");
- std::string return_message = "E96;";
- std::string msg
https://github.com/clayborg approved this pull request.
https://github.com/llvm/llvm-project/pull/81909
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg commented:
LGTM
https://github.com/llvm/llvm-project/pull/82736
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/81564
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/81564
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -0,0 +1,70 @@
+#include
+#include
+#include
+#include
+#include
+#include
+
+pid_t g_pid = 0;
+std::mutex g_child_pids_mutex;
+std::vector g_child_pids;
+
+int call_vfork(int index) {
+ pid_t child_pid = vfork();
+
+ if (child_pid == -1) {
+// Error handling
+pe
@@ -0,0 +1,70 @@
+#include
+#include
+#include
+#include
+#include
+#include
+
+pid_t g_pid = 0;
+std::mutex g_child_pids_mutex;
+std::vector g_child_pids;
+
+int call_vfork(int index) {
clayborg wrote:
We probably want to test with both `fork()` and `vfork
@@ -5681,7 +5685,10 @@ void ProcessGDBRemote::DidVForkDone() {
void ProcessGDBRemote::DidExec() {
// If we are following children, vfork is finished by exec (rather than
// vforkdone that is submitted for parent).
- if (GetFollowForkMode() == eFollowChild)
-m_vfork_in_
@@ -0,0 +1,70 @@
+#include
+#include
+#include
+#include
+#include
+#include
+
+pid_t g_pid = 0;
+std::mutex g_child_pids_mutex;
+std::vector g_child_pids;
+
+int call_vfork(int index) {
+ pid_t child_pid = vfork();
clayborg wrote:
Use either `fork()` of `
@@ -0,0 +1,70 @@
+#include
+#include
+#include
+#include
+#include
+#include
+
+pid_t g_pid = 0;
+std::mutex g_child_pids_mutex;
+std::vector g_child_pids;
+
+int call_vfork(int index) {
+ pid_t child_pid = vfork();
+
+ if (child_pid == -1) {
+// Error handling
+pe
@@ -5670,8 +5673,9 @@ void ProcessGDBRemote::DidVFork(lldb::pid_t child_pid,
lldb::tid_t child_tid) {
}
void ProcessGDBRemote::DidVForkDone() {
- assert(m_vfork_in_progress);
- m_vfork_in_progress = false;
+ assert(m_vfork_in_progress_count > 0);
+ if (m_vfork_in_progress
@@ -5615,8 +5614,12 @@ void ProcessGDBRemote::DidFork(lldb::pid_t child_pid,
lldb::tid_t child_tid) {
void ProcessGDBRemote::DidVFork(lldb::pid_t child_pid, lldb::tid_t child_tid) {
Log *log = GetLog(GDBRLog::Process);
- assert(!m_vfork_in_progress);
- m_vfork_in_progress
@@ -0,0 +1,49 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Test
@@ -0,0 +1,49 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Test
@@ -0,0 +1,70 @@
+#include
+#include
+#include
+#include
+#include
+#include
+
+pid_t g_pid = 0;
+std::mutex g_child_pids_mutex;
+std::vector g_child_pids;
+
+int call_vfork(int index) {
+ pid_t child_pid = vfork();
+
+ if (child_pid == -1) {
+// Error handling
+pe
@@ -0,0 +1,70 @@
+#include
+#include
+#include
+#include
+#include
+#include
+
+pid_t g_pid = 0;
+std::mutex g_child_pids_mutex;
+std::vector g_child_pids;
+
+int call_vfork(int index) {
+ pid_t child_pid = vfork();
+
+ if (child_pid == -1) {
+// Error handling
+pe
@@ -0,0 +1,70 @@
+#include
+#include
+#include
+#include
+#include
+#include
+
+pid_t g_pid = 0;
+std::mutex g_child_pids_mutex;
+std::vector g_child_pids;
+
+int call_vfork(int index) {
+ pid_t child_pid = vfork();
+
+ if (child_pid == -1) {
+// Error handling
+pe
https://github.com/clayborg commented:
Can we not just use a `Progress` object instead of installing a callback? Seems
like a very specific use case to install a callback for in our public API. Do
we create `Progress` objects for each background download? If we don't, should
we? Then this woul
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/82799
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -623,8 +630,20 @@ void Debugger::Terminate() {
}
if (g_thread_pool) {
-// The destructor will wait for all the threads to complete.
-delete g_thread_pool;
+// Delete the thread pool in a different thread so we can set a timeout.
clayborg wro
@@ -3944,15 +3955,22 @@ rnb_err_t RNBRemote::HandlePacket_v(const char *p) {
// The order of these checks is important.
if (process_does_not_exist (pid_attaching_to)) {
DNBLogError("Tried to attach to pid that doesn't exist");
- std::string
https://github.com/clayborg commented:
I would almost vote to change everything to `uint64_t` except for the public
API since we can't change the API without breaking. Though I winder if we can
actually change this one:
```
uint64_t SBValue::GetNumChildren();
```
Since the return value isn't ma
clayborg wrote:
I would vote for `uint64_t` over `size_t` as `size_t` is 32 bits on 32 bit
operating systems and we might be cross debugging to 64 bit systems that need
`uint64_t`
https://github.com/llvm/llvm-project/pull/83501
___
lldb-commits maili
https://github.com/clayborg approved this pull request.
https://github.com/llvm/llvm-project/pull/82799
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg commented:
Looking good. One question: do we want to switch to using a
`std::optional` instead of using a `uint64_t` with a default value of
UINT32_MAX? We should either use the optional or switch everything except for
the public API over to use `UINT64_MAX`
https:
@@ -958,7 +958,7 @@ class ValueObject {
int32_t synthetic_index);
/// Should only be called by ValueObject::GetNumChildren().
- virtual size_t CalculateNumChildren(uint32_t max = UINT32_MAX) = 0;
+ virtual uint64_t CalculateNumChil
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/83501
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg created
https://github.com/llvm/llvm-project/pull/83935
DWP files don't usually have a GNU build ID built into them. When searching for
a .dwp file, don't require a UUID to be in the .dwp file. The debug info search
information was checking for a UUID in the .dwp fi
clayborg wrote:
> > Looking good. One question: do we want to switch to using a
> > `std::optional` instead of using a `uint64_t` with a default
> > value of UINT32_MAX? We should either use the optional or switch everything
> > except for the public API over to use `UINT64_MAX`
>
> The entir
https://github.com/clayborg requested changes to this pull request.
So the only thing left to here is to stop using `UINT32_MAX` and switch to
using `UINT64_MAX` on internal APIs.
https://github.com/llvm/llvm-project/pull/83501
___
lldb-commits mailin
https://github.com/clayborg commented:
Might be nice to print the mangled name of the symbol as well? We are doing it
for the function...
https://github.com/llvm/llvm-project/pull/84071
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https:/
@@ -524,6 +524,9 @@ void BreakpointLocation::GetDescription(Stream *s,
s->EOL();
s->Indent("function = ");
s->PutCString(sc.function->GetName().AsCString(""));
+ s->EOL();
+ s->Indent("mangled function = ");
+
s->PutCStr
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/84071
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -524,6 +524,9 @@ void BreakpointLocation::GetDescription(Stream *s,
s->EOL();
s->Indent("function = ");
s->PutCString(sc.function->GetName().AsCString(""));
+ s->EOL();
+ s->Indent("mangled function = ");
+
s->PutCStr
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/81564
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/81564
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -0,0 +1,115 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Tes
@@ -0,0 +1,115 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Tes
@@ -0,0 +1,115 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Tes
@@ -0,0 +1,115 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Tes
@@ -0,0 +1,115 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Tes
@@ -0,0 +1,115 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Tes
https://github.com/clayborg approved this pull request.
As long as the changes are planned for quick follow up patches I am good not
changing it up front. And we can probably just switch to using
`std::optional` instead of switching things to use UINT32_MAX anyway
with a follow up patch which
@@ -139,6 +139,20 @@
// RUN: -o "target variable a" \
// RUN: -b %t | FileCheck %s
+// Now move the .debug and .dwp file into another directory so that we can use
clayborg wrote:
That is already covered by other split DWARF testing, so it doesn't need to
@@ -524,6 +524,9 @@ void BreakpointLocation::GetDescription(Stream *s,
s->EOL();
s->Indent("function = ");
s->PutCString(sc.function->GetName().AsCString(""));
+ s->EOL();
+ s->Indent("mangled function = ");
+
s->PutCStr
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/81564
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -0,0 +1,116 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Tes
@@ -0,0 +1,116 @@
+"""
+Make sure that the concurrent vfork() from multiple threads works correctly.
+"""
+
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+
+class TestConcurrentVFork(Tes
https://github.com/clayborg approved this pull request.
One little nit you can fix as suggested in the inline comments.
https://github.com/llvm/llvm-project/pull/81564
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi
https://github.com/clayborg approved this pull request.
https://github.com/llvm/llvm-project/pull/84224
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg closed
https://github.com/llvm/llvm-project/pull/83935
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg approved this pull request.
Looks good for just including the mangled name.
https://github.com/llvm/llvm-project/pull/84071
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/lis
https://github.com/clayborg approved this pull request.
I had to do this as well, LGTM.
https://github.com/llvm/llvm-project/pull/84630
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commi
https://github.com/clayborg approved this pull request.
https://github.com/llvm/llvm-project/pull/84607
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -75,45 +81,86 @@ void Progress::ReportProgress() {
}
}
-ProgressManager::ProgressManager() : m_progress_category_map() {}
+ProgressManager::ProgressManager()
+: m_alarm(std::chrono::milliseconds(100)), m_entries() {}
ProgressManager::~ProgressManager() {}
+void P
@@ -75,45 +81,86 @@ void Progress::ReportProgress() {
}
}
-ProgressManager::ProgressManager() : m_progress_category_map() {}
+ProgressManager::ProgressManager()
+: m_alarm(std::chrono::milliseconds(100)), m_entries() {}
clayborg wrote:
Make this a lldb
@@ -75,45 +81,86 @@ void Progress::ReportProgress() {
}
}
-ProgressManager::ProgressManager() : m_progress_category_map() {}
+ProgressManager::ProgressManager()
+: m_alarm(std::chrono::milliseconds(100)), m_entries() {}
ProgressManager::~ProgressManager() {}
+void P
@@ -75,45 +81,86 @@ void Progress::ReportProgress() {
}
}
-ProgressManager::ProgressManager() : m_progress_category_map() {}
+ProgressManager::ProgressManager()
+: m_alarm(std::chrono::milliseconds(100)), m_entries() {}
ProgressManager::~ProgressManager() {}
+void P
@@ -1066,11 +1066,21 @@ bool
SymbolLocatorDebugSymbols::DownloadObjectAndSymbolFile(
command << lookup_arg;
// Log and report progress.
+ std::string lookup_desc;
+ if (uuid_ptr && file_spec_ptr)
+lookup_desc =
+llvm::formatv("{0} ({1})", file_spec_ptr->GetF
@@ -658,6 +658,33 @@ static char ConvertValueObjectStyleToChar(
return '\0';
}
+static bool DumpValueWithLLVMFormat(Stream &s, llvm::StringRef options,
+ValueObject &target) {
clayborg wrote:
Can we named this something o
@@ -210,6 +210,12 @@ else
ifeq "$(SPLIT_DEBUG_SYMBOLS)" "YES"
DSYM = $(EXE).debug
endif
+
+ ifeq "$(MERGE_DWOS)" "YES"
clayborg wrote:
Is `MERGE_DWOS` new? If so, lets rename to `MAKE_DWP`
https://github.com/llvm/llvm-projec
https://github.com/clayborg approved this pull request.
https://github.com/llvm/llvm-project/pull/85693
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg closed
https://github.com/llvm/llvm-project/pull/85693
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg approved this pull request.
LGTM. I commented on the timeout, but we can implement a setting later if
needed. We can always have the ProgressManager class start with 100ms, and then
have its timeout updated if/when the settings get modified later. Since there
is one
https://github.com/clayborg closed
https://github.com/llvm/llvm-project/pull/86292
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg approved this pull request.
https://github.com/llvm/llvm-project/pull/86292
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg requested changes to this pull request.
SymbolFileDWARF::ParseLineTable() does more work after using llvm to parse the
line table and we still need to measure this. So I believe that the current
timer was in the correct position. Parse time for DWARF means how long t
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/86568
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -1228,10 +1231,9 @@ bool SymbolFileDWARF::ParseLineTable(CompileUnit
&comp_unit) {
if (offset == DW_INVALID_OFFSET)
return false;
- ElapsedTime elapsed(m_parse_time);
clayborg wrote:
We want this to stay in this function so it measures all of the w
@@ -1228,10 +1231,9 @@ bool SymbolFileDWARF::ParseLineTable(CompileUnit
&comp_unit) {
if (offset == DW_INVALID_OFFSET)
return false;
- ElapsedTime elapsed(m_parse_time);
clayborg wrote:
We want all of the time in LLDB to parse and prepare the data, no
@@ -3154,7 +3154,7 @@
AppleObjCRuntimeV2::TaggedPointerVendorExtended::GetClassDescriptor(
<< m_objc_debug_taggedpointer_ext_payload_lshift)
>>
m_objc_debug_taggedpointer_ext_payload_rshift);
int64_t data_payload_signed
https://github.com/clayborg approved this pull request.
https://github.com/llvm/llvm-project/pull/86568
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg approved this pull request.
https://github.com/llvm/llvm-project/pull/86740
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -67,6 +67,21 @@ SBAddress SBLineEntry::GetEndAddress() const {
return sb_address;
}
+SBAddress SBLineEntry::GetSameLineContiguousAddressRangeEnd(
+bool include_inlined_functions) const {
+ LLDB_INSTRUMENT_VA(this);
+
+ SBAddress sb_address;
+ if (m_opaque_up) {
+
@@ -811,23 +811,34 @@ def request_next(self, threadId):
command_dict = {"command": "next", "type": "request", "arguments":
args_dict}
return self.send_recv(command_dict)
-def request_stepIn(self, threadId):
+def request_stepInTargets(self, frameId):
@@ -29,6 +29,9 @@ class LLDB_API SBLineEntry {
lldb::SBAddress GetEndAddress() const;
+ lldb::SBAddress
+ GetSameLineContiguousAddressRangeEnd(bool include_inlined_functions) const;
+
clayborg wrote:
We don't need this API right? We spoke about using exi
@@ -3180,14 +3180,153 @@ void request_stepIn(const llvm::json::Object &request)
{
llvm::json::Object response;
FillResponse(request, response);
auto arguments = request.getObject("arguments");
+
+ std::string step_in_target;
+ uint64_t target_id = GetUnsigned(arguments
@@ -3180,14 +3180,153 @@ void request_stepIn(const llvm::json::Object &request)
{
llvm::json::Object response;
FillResponse(request, response);
auto arguments = request.getObject("arguments");
+
+ std::string step_in_target;
+ uint64_t target_id = GetUnsigned(arguments
https://github.com/clayborg created
https://github.com/llvm/llvm-project/pull/87164
We have the ability to load .dwp files with a .debug_info.dwo section that
exceeds 4GB. There were 4 locations that were using 32 bit offsets and lengths
to extract variable locations, and if a DIE was over the
https://github.com/clayborg closed
https://github.com/llvm/llvm-project/pull/87164
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -618,6 +631,24 @@ class ValueObject {
virtual lldb::ValueObjectSP CastPointerType(const char *name,
lldb::TypeSP &type_sp);
+ /// Return the target load address assocaited with this value object.
+ lldb::addr_t GetLoadAddres
@@ -668,6 +699,32 @@ class ValueObject {
CreateValueObjectFromData(llvm::StringRef name, const DataExtractor &data,
const ExecutionContext &exe_ctx, CompilerType
type);
+ static lldb::ValueObjectSP
+ CreateValueObjectFromBytes(lldb::TargetSP ta
@@ -618,6 +631,24 @@ class ValueObject {
virtual lldb::ValueObjectSP CastPointerType(const char *name,
lldb::TypeSP &type_sp);
+ /// Return the target load address assocaited with this value object.
+ lldb::addr_t GetLoadAddres
@@ -618,6 +631,24 @@ class ValueObject {
virtual lldb::ValueObjectSP CastPointerType(const char *name,
lldb::TypeSP &type_sp);
+ /// Return the target load address assocaited with this value object.
+ lldb::addr_t GetLoadAddres
@@ -441,6 +441,19 @@ class ValueObject {
virtual int64_t GetValueAsSigned(int64_t fail_value, bool *success =
nullptr);
+ llvm::APSInt GetValueAsAPSInt();
+
+ llvm::APFloat GetValueAsFloat();
+
+ bool GetValueAsBool();
+
+ /// Update the value of the current object to
@@ -441,6 +441,19 @@ class ValueObject {
virtual int64_t GetValueAsSigned(int64_t fail_value, bool *success =
nullptr);
+ llvm::APSInt GetValueAsAPSInt();
+
+ llvm::APFloat GetValueAsFloat();
+
+ bool GetValueAsBool();
clayborg wrote:
Do we need `GetVa
@@ -668,6 +699,32 @@ class ValueObject {
CreateValueObjectFromData(llvm::StringRef name, const DataExtractor &data,
const ExecutionContext &exe_ctx, CompilerType
type);
+ static lldb::ValueObjectSP
+ CreateValueObjectFromBytes(lldb::TargetSP ta
@@ -1089,6 +1089,116 @@ int64_t ValueObject::GetValueAsSigned(int64_t
fail_value, bool *success) {
return fail_value;
}
+llvm::APSInt ValueObject::GetValueAsAPSInt() {
+ lldb::TargetSP target = GetTargetSP();
+ uint64_t byte_size = 0;
+ if (auto temp = GetCompilerType().
2201 - 2300 of 3324 matches
Mail list logo