@@ -791,26 +812,101 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
size_t size = memory_buffer->getBufferSize();
if (size == 0)
continue;
- AddDirectory(stream, size);
+ error = AddDirectory(stream, size);
+ if (error.Fail())
+
@@ -858,10 +953,247 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+static size_t GetLargestRange(const Process::CoreFileMemoryRanges ) {
+ size_t
@@ -858,10 +953,247 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+static size_t GetLargestRange(const Process::CoreFileMemoryRanges ) {
+ size_t
@@ -858,10 +953,247 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+static size_t GetLargestRange(const Process::CoreFileMemoryRanges ) {
+ size_t
@@ -20,25 +20,104 @@
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/StopInfo.h"
#include "lldb/Target/ThreadList.h"
+#include "lldb/Utility/DataBufferHeap.h"
#include "lldb/Utility/DataExtractor.h"
#include "lldb/Utility/LLDBLog.h"
#include
@@ -28,17 +29,90 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/Minidump.h"
#include "llvm/Support/ConvertUTF.h"
+#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
+#include "llvm/TargetParser/Triple.h"
#include
@@ -858,10 +953,247 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+static size_t GetLargestRange(const Process::CoreFileMemoryRanges ) {
+ size_t
@@ -797,20 +794,89 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
@@ -81,38 +82,42 @@ Status
MinidumpFileBuilder::AddHeaderAndCalculateDirectories() {
// Now offset the file by the directores so we can write them in later.
offset_t directory_offset = m_expected_directories * directory_size;
m_saved_data_size += directory_offset;
- //
@@ -791,26 +812,101 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
size_t size = memory_buffer->getBufferSize();
if (size == 0)
continue;
- AddDirectory(stream, size);
+ error = AddDirectory(stream, size);
+ if (error.Fail())
+
@@ -858,10 +953,247 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+static size_t GetLargestRange(const Process::CoreFileMemoryRanges ) {
+ size_t
@@ -858,10 +953,247 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+static size_t GetLargestRange(const Process::CoreFileMemoryRanges ) {
+ size_t
clayborg wrote:
> Most of the patch is very clean, but I'm bothered by the
> `getForeignTUSkeletonCUOffset` function, how it opens up with a mostly
> redundant (the callers checks this already) call to
> `getForeignTUTypeSignature`, and then proceeds with a reimplementation of
>
https://github.com/clayborg requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/95075
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -133,7 +133,9 @@ struct ConstStringStats {
struct StatisticsOptions {
bool summary_only = false;
bool load_all_debug_info = false;
- bool include_transcript = false;
+ bool include_targets = true;
+ bool include_modules = true;
clayborg wrote:
Do we
@@ -133,7 +133,9 @@ struct ConstStringStats {
struct StatisticsOptions {
bool summary_only = false;
bool load_all_debug_info = false;
- bool include_transcript = false;
clayborg wrote:
I would move this line that was removed back to where it was on line
@@ -77,12 +78,33 @@ class CommandObjectStatsDump : public CommandObjectParsed {
break;
case 's':
m_stats_options.summary_only = true;
+// In the "summary" mode, the following sections should be omitted by
+// default unless their
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/95075
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -44,6 +44,30 @@ void SBStatisticsOptions::SetSummaryOnly(bool b) {
bool SBStatisticsOptions::GetSummaryOnly() { return m_opaque_up->summary_only;
}
+void SBStatisticsOptions::SetIncludeTargets(bool b) {
+ m_opaque_up->include_targets = b;
+}
+
+bool
clayborg wrote:
I think I have addressed all issues. Does anyone have time to review?
https://github.com/llvm/llvm-project/pull/87740
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
@@ -59,39 +68,67 @@ class MinidumpFileBuilder {
// Add ThreadList stream, containing information about all threads running
// at the moment of core saving. Contains information about thread
// contexts.
- lldb_private::Status AddThreadList(const lldb::ProcessSP _sp);
-
@@ -858,10 +923,224 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+Status MinidumpFileBuilder::AddMemoryList_32(
+const
@@ -28,17 +29,90 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/Minidump.h"
#include "llvm/Support/ConvertUTF.h"
+#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
+#include "llvm/TargetParser/Triple.h"
#include
@@ -28,17 +29,90 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/Minidump.h"
#include "llvm/Support/ConvertUTF.h"
+#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
+#include "llvm/TargetParser/Triple.h"
#include
@@ -858,10 +937,225 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+Status MinidumpFileBuilder::AddMemoryList_32(
+const ProcessSP _sp, const
@@ -50,48 +60,75 @@ class MinidumpFileBuilder {
~MinidumpFileBuilder() = default;
+ lldb_private::Status AddHeaderAndCalculateDirectories();
// Add SystemInfo stream, used for storing the most basic information
// about the system, platform etc...
-
@@ -858,10 +937,225 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+Status MinidumpFileBuilder::AddMemoryList_32(
+const ProcessSP _sp, const
@@ -858,10 +923,224 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+Status MinidumpFileBuilder::AddMemoryList_32(
+const
@@ -797,20 +794,89 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
@@ -797,20 +794,89 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
@@ -59,39 +68,67 @@ class MinidumpFileBuilder {
// Add ThreadList stream, containing information about all threads running
// at the moment of core saving. Contains information about thread
// contexts.
- lldb_private::Status AddThreadList(const lldb::ProcessSP _sp);
-
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/95312
___
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/95312
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -858,10 +937,225 @@ Status MinidumpFileBuilder::Dump(lldb::FileUP
_file) const {
return error;
}
-size_t MinidumpFileBuilder::GetDirectoriesNum() const {
- return m_directories.size();
+Status MinidumpFileBuilder::AddMemoryList_32(
+const ProcessSP _sp, const
@@ -59,39 +68,67 @@ class MinidumpFileBuilder {
// Add ThreadList stream, containing information about all threads running
// at the moment of core saving. Contains information about thread
// contexts.
- lldb_private::Status AddThreadList(const lldb::ProcessSP _sp);
-
@@ -59,39 +68,67 @@ class MinidumpFileBuilder {
// Add ThreadList stream, containing information about all threads running
// at the moment of core saving. Contains information about thread
// contexts.
- lldb_private::Status AddThreadList(const lldb::ProcessSP _sp);
-
@@ -797,20 +822,75 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
@@ -797,20 +822,75 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
@@ -59,39 +68,67 @@ class MinidumpFileBuilder {
// Add ThreadList stream, containing information about all threads running
// at the moment of core saving. Contains information about thread
// contexts.
- lldb_private::Status AddThreadList(const lldb::ProcessSP _sp);
-
@@ -797,20 +822,75 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
@@ -797,20 +822,75 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
@@ -59,39 +68,67 @@ class MinidumpFileBuilder {
// Add ThreadList stream, containing information about all threads running
// at the moment of core saving. Contains information about thread
// contexts.
- lldb_private::Status AddThreadList(const lldb::ProcessSP _sp);
-
@@ -797,20 +822,75 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
@@ -59,39 +68,67 @@ class MinidumpFileBuilder {
// Add ThreadList stream, containing information about all threads running
// at the moment of core saving. Contains information about thread
// contexts.
- lldb_private::Status AddThreadList(const lldb::ProcessSP _sp);
-
@@ -40,7 +46,7 @@ lldb_private::Status WriteString(const std::string _write,
/// the data on heap.
class MinidumpFileBuilder {
public:
- MinidumpFileBuilder() = default;
+ MinidumpFileBuilder(lldb::FileUP&& core_file):
m_core_file(std::move(core_file)) {};
@@ -797,20 +822,75 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
@@ -797,20 +822,75 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
https://github.com/clayborg requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/95312
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -797,20 +822,75 @@ void MinidumpFileBuilder::AddLinuxFileStreams(
}
}
-Status MinidumpFileBuilder::Dump(lldb::FileUP _file) const {
- constexpr size_t header_size = sizeof(llvm::minidump::Header);
- constexpr size_t directory_size = sizeof(llvm::minidump::Directory);
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/95312
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -810,6 +809,65 @@ const char *SBProcess::GetBroadcasterClass() {
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
}
+lldb::SBAddressRangeList
+SBProcess::FindRangesInMemory(const void *buf, uint64_t size,
+
@@ -810,6 +809,65 @@ const char *SBProcess::GetBroadcasterClass() {
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
}
+lldb::SBAddressRangeList
+SBProcess::FindRangesInMemory(const void *buf, uint64_t size,
+
@@ -810,6 +809,65 @@ const char *SBProcess::GetBroadcasterClass() {
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
}
+lldb::SBAddressRangeList
+SBProcess::FindRangesInMemory(const void *buf, uint64_t size,
+
@@ -810,6 +809,65 @@ const char *SBProcess::GetBroadcasterClass() {
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
}
+lldb::SBAddressRangeList
+SBProcess::FindRangesInMemory(const void *buf, uint64_t size,
+
@@ -810,6 +809,65 @@ const char *SBProcess::GetBroadcasterClass() {
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
}
+lldb::SBAddressRangeList
+SBProcess::FindRangesInMemory(const void *buf, uint64_t size,
+
@@ -2007,6 +2007,124 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
@@ -0,0 +1,31 @@
+import lldb
+
+SINGLE_INSTANCE_PATTERN = "there_is_only_one_of_me"
+DOUBLE_INSTANCE_PATTERN = "there_is_exactly_two_of_me"
+
+
+def GetAddressRanges(test_base):
clayborg wrote:
You will want to check that multiple memory ranges works, so you
clayborg wrote:
This PR rate limits things. Might be worth trying this out here to see if it
helps:
https://github.com/llvm/llvm-project/pull/75769
https://github.com/llvm/llvm-project/pull/91452
___
lldb-commits mailing list
https://github.com/clayborg closed
https://github.com/llvm/llvm-project/pull/94846
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/clayborg updated
https://github.com/llvm/llvm-project/pull/87740
>From c364215cef4d383bf5cb51bf61d442a5bc9fbfe9 Mon Sep 17 00:00:00 2001
From: Greg Clayton
Date: Sat, 30 Mar 2024 10:50:34 -0700
Subject: [PATCH 1/9] Add support for using foreign type units in .debug_names.
https://github.com/clayborg commented:
LGTM.
https://github.com/llvm/llvm-project/pull/94744
___
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/95127
___
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
https://github.com/llvm/llvm-project/pull/91544
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -86,4 +89,22 @@ TEST_F(HostTest, GetProcessInfo) {
ProcessInstanceInfo::timespec next_user_time = Info.GetUserTime();
ASSERT_TRUE(user_time.tv_sec <= next_user_time.tv_sec ||
user_time.tv_usec <= next_user_time.tv_usec);
+
+ struct rlimit rlim;
+
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/91544
___
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.
One nit from inlined code to check `Info.GetPriorityValue().has_value()` and
this is good to go.
https://github.com/llvm/llvm-project/pull/91544
___
lldb-commits mailing list
@@ -110,6 +108,9 @@ bool
StopInfoMachException::DeterminePtrauthFailure(ExecutionContext _ctx) {
strm.Printf("Note: Possible pointer authentication failure detected.\n");
};
+ ABISP abi_sp = process.GetABI();
+ assert(abi_sp && "Missing ABI info");
@@ -133,6 +133,8 @@ struct ConstStringStats {
struct StatisticsOptions {
bool summary_only = false;
bool load_all_debug_info = false;
+ bool include_targets = false;
+ bool include_modules = false;
clayborg wrote:
These should default to `true` if we
@@ -1416,16 +1416,26 @@ let Command = "trace schema" in {
}
let Command = "statistics dump" in {
- def statistics_dump_all: Option<"all-targets", "a">, Group<1>,
+ def statistics_dump_all: Option<"all-targets", "a">, GroupRange<1, 2>,
Desc<"Include statistics for all
https://github.com/clayborg requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/95075
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -1416,16 +1416,26 @@ let Command = "trace schema" in {
}
let Command = "statistics dump" in {
- def statistics_dump_all: Option<"all-targets", "a">, Group<1>,
+ def statistics_dump_all: Option<"all-targets", "a">, GroupRange<1, 2>,
Desc<"Include statistics for all
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/95075
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -1416,16 +1416,26 @@ let Command = "trace schema" in {
}
let Command = "statistics dump" in {
- def statistics_dump_all: Option<"all-targets", "a">, Group<1>,
+ def statistics_dump_all: Option<"all-targets", "a">, GroupRange<1, 2>,
Desc<"Include statistics for all
https://github.com/clayborg commented:
With these new options the default `statistics dump` changes the output from
what is was before. I might suggest that we set the defaults so it does what it
used to do by default, and then let users opt out of the targets and modules in
each output. This
https://github.com/clayborg updated
https://github.com/llvm/llvm-project/pull/94846
>From 2f579ecafeaeb735cbce1bcfc829eb52a93f067c Mon Sep 17 00:00:00 2001
From: Greg Clayton
Date: Fri, 7 Jun 2024 23:56:03 -0700
Subject: [PATCH 1/3] Fix type lookup bug where wrong decl context was being
used
https://github.com/clayborg updated
https://github.com/llvm/llvm-project/pull/87740
>From c364215cef4d383bf5cb51bf61d442a5bc9fbfe9 Mon Sep 17 00:00:00 2001
From: Greg Clayton
Date: Sat, 30 Mar 2024 10:50:34 -0700
Subject: [PATCH 1/8] Add support for using foreign type units in .debug_names.
@@ -657,6 +657,42 @@ std::optional
DWARFDebugNames::Entry::getLocalTUOffset() const {
return NameIdx->getLocalTUOffset(*Index);
}
+std::optional
+DWARFDebugNames::Entry::getForeignTUTypeSignature() const {
+ std::optional Index = getLocalTUIndex();
+ const uint32_t
https://github.com/clayborg updated
https://github.com/llvm/llvm-project/pull/94846
>From 2f579ecafeaeb735cbce1bcfc829eb52a93f067c Mon Sep 17 00:00:00 2001
From: Greg Clayton
Date: Fri, 7 Jun 2024 23:56:03 -0700
Subject: [PATCH 1/2] Fix type lookup bug where wrong decl context was being
used
@@ -0,0 +1,69 @@
+"""
+Test the SBModule and SBTarget type lookup APIs to find multiple types.
+"""
+
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class TypeFindFirstTestCase(TestBase):
+def test_find_first_type(self):
+
@@ -0,0 +1,69 @@
+"""
+Test the SBModule and SBTarget type lookup APIs to find multiple types.
+"""
+
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class TypeFindFirstTestCase(TestBase):
+def test_find_first_type(self):
+
@@ -0,0 +1,69 @@
+"""
clayborg wrote:
I can do that. I have a DWARF generator that I wrote in python.
https://github.com/llvm/llvm-project/pull/94846
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
@@ -0,0 +1,21 @@
+#include
+
+int main() {
+ constexpr char SINGLE_INSTANCE_STRING[] = "there_is_only_one_of_me";
+ constexpr size_t single_instance_size = sizeof(SINGLE_INSTANCE_STRING) + 1;
+ char *single_instance = new char[single_instance_size];
+ strcpy(single_instance,
@@ -0,0 +1,31 @@
+import lldb
+
+SINGLE_INSTANCE_PATTERN = "there_is_only_one_of_me"
+DOUBLE_INSTANCE_PATTERN = "there_is_exactly_two_of_me"
+
+
+def GetAddressRanges(test_base):
clayborg wrote:
Here you can just get the current thread's stack pointer for
@@ -0,0 +1,21 @@
+#include
+
+int main() {
+ constexpr char SINGLE_INSTANCE_STRING[] = "there_is_only_one_of_me";
clayborg wrote:
If you take constexpr off of here, you can create the variable on the stack,
and then just use the memory region for the SP of
https://github.com/clayborg edited
https://github.com/llvm/llvm-project/pull/95007
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -0,0 +1,21 @@
+#include
+
+int main() {
+ constexpr char SINGLE_INSTANCE_STRING[] = "there_is_only_one_of_me";
+ constexpr size_t single_instance_size = sizeof(SINGLE_INSTANCE_STRING) + 1;
+ char *single_instance = new char[single_instance_size];
+ strcpy(single_instance,
@@ -2007,6 +2007,124 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
@@ -2007,6 +2007,124 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
@@ -2007,6 +2007,124 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
@@ -810,6 +809,65 @@ const char *SBProcess::GetBroadcasterClass() {
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
}
+lldb::SBAddressRangeList
+SBProcess::FindRangesInMemory(const void *buf, uint64_t size,
+
@@ -2007,6 +2007,124 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
@@ -2007,6 +2007,124 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
https://github.com/clayborg requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/95007
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -2007,6 +2007,124 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
@@ -2007,6 +2007,124 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
@@ -2007,6 +2007,123 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
@@ -810,6 +809,112 @@ const char *SBProcess::GetBroadcasterClass() {
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
}
+lldb::SBAddressRangeList
+SBProcess::FindRangesInMemory(const void *buf, uint64_t size,
+
@@ -810,6 +809,112 @@ const char *SBProcess::GetBroadcasterClass() {
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
}
+lldb::SBAddressRangeList
+SBProcess::FindRangesInMemory(const void *buf, uint64_t size,
+
@@ -2685,6 +2685,13 @@ void PruneThreadPlans();
lldb::addr_t FindInMemory(lldb::addr_t low, lldb::addr_t high,
const uint8_t *buf, size_t size);
+ Status FindInMemory(AddressRanges , const uint8_t *buf, size_t size,
+ const
@@ -2007,6 +2007,123 @@ size_t Process::ReadMemory(addr_t addr, void *buf,
size_t size, Status ) {
}
}
+void Process::DoFindInMemory(lldb::addr_t start_addr, lldb::addr_t end_addr,
+ const uint8_t *buf, size_t size,
+
1 - 100 of 2280 matches
Mail list logo