Skip to content

Commit fe3c0eb

Browse files
committed
Add POSIX dyld to processminidump
1 parent f432d21 commit fe3c0eb

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

lldb/source/Expression/DWARFExpression.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2168,6 +2168,8 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
21682168
// pushes it on the stack.
21692169
case DW_OP_form_tls_address:
21702170
case DW_OP_GNU_push_tls_address: {
2171+
bool debug = true;
2172+
while (debug) {}
21712173
if (stack.size() < 1) {
21722174
if (op == DW_OP_form_tls_address)
21732175
return llvm::createStringError(

lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "lldb/Interpreter/CommandReturnObject.h"
2222
#include "lldb/Interpreter/OptionArgParser.h"
2323
#include "lldb/Interpreter/OptionGroupBoolean.h"
24+
#include "lldb/Target/DynamicLoader.h"
2425
#include "lldb/Target/JITLoaderList.h"
2526
#include "lldb/Target/MemoryRegionInfo.h"
2627
#include "lldb/Target/SectionLoadList.h"
@@ -35,6 +36,7 @@
3536
#include "llvm/Support/Threading.h"
3637

3738
#include "Plugins/ObjectFile/Placeholder/ObjectFilePlaceholder.h"
39+
#include "Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h"
3840
#include "Plugins/Process/Utility/StopInfoMachException.h"
3941

4042
#include <memory>
@@ -333,6 +335,19 @@ ArchSpec ProcessMinidump::GetArchitecture() {
333335
return ArchSpec(triple);
334336
}
335337

338+
DynamicLoader* ProcessMinidump::GetDynamicLoader() {
339+
if (m_dyld_up && m_dyld_up.get())
340+
return m_dyld_up.get();
341+
342+
ArchSpec arch = GetArchitecture();
343+
if (arch.GetTriple().getOS() == llvm::Triple::Linux) {
344+
m_dyld_up.reset(DynamicLoader::FindPlugin(
345+
this, DynamicLoaderPOSIXDYLD::GetPluginNameStatic()));
346+
}
347+
348+
return m_dyld_up.get();
349+
}
350+
336351
void ProcessMinidump::BuildMemoryRegions() {
337352
if (m_memory_regions)
338353
return;

lldb/source/Plugins/Process/minidump/ProcessMinidump.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,11 @@ class ProcessMinidump : public PostMortemProcess {
5050
bool plugin_specified_by_name) override;
5151

5252
CommandObject *GetPluginCommandObject() override;
53+
5354

5455
Status DoLoadCore() override;
5556

56-
DynamicLoader *GetDynamicLoader() override { return nullptr; }
57+
DynamicLoader *GetDynamicLoader() override;
5758

5859
llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
5960

0 commit comments

Comments
 (0)