summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/RuntimeDyld
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2014-11-26 07:39:03 +0000
committerLang Hames <lhames@gmail.com>2014-11-26 07:39:03 +0000
commit7cacb9b54057f7a368ed9788799c06264baddb20 (patch)
tree8047b32cd51271d747ad867673136cf4b1b13be1 /llvm/lib/ExecutionEngine/RuntimeDyld
parent08a01ae3728e8896129cc6057ca2895d4e70b8e6 (diff)
downloadbcm5719-llvm-7cacb9b54057f7a368ed9788799c06264baddb20.tar.gz
bcm5719-llvm-7cacb9b54057f7a368ed9788799c06264baddb20.zip
[MCJIT] Re-enable GDB registration (temporarily disabled in r222811), but check
that we actually have an object to register first. For MachO objects, RuntimeDyld::LoadedObjectInfo::getObjectForDebug returns an empty OwningBinary<ObjectFile> which was causing crashes in the GDB registration code. llvm-svn: 222812
Diffstat (limited to 'llvm/lib/ExecutionEngine/RuntimeDyld')
-rw-r--r--llvm/lib/ExecutionEngine/RuntimeDyld/GDBRegistrationListener.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/GDBRegistrationListener.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/GDBRegistrationListener.cpp
index 641d3a26270..13d5672a82b 100644
--- a/llvm/lib/ExecutionEngine/RuntimeDyld/GDBRegistrationListener.cpp
+++ b/llvm/lib/ExecutionEngine/RuntimeDyld/GDBRegistrationListener.cpp
@@ -151,6 +151,11 @@ void GDBJITRegistrationListener::NotifyObjectEmitted(
const RuntimeDyld::LoadedObjectInfo &L) {
OwningBinary<ObjectFile> DebugObj = L.getObjectForDebug(Object);
+
+ // Bail out if debug objects aren't supported.
+ if (!DebugObj.getBinary())
+ return;
+
const char *Buffer = DebugObj.getBinary()->getMemoryBufferRef().getBufferStart();
size_t Size = DebugObj.getBinary()->getMemoryBufferRef().getBufferSize();
OpenPOWER on IntegriCloud