diff options
author | Chris Lattner <sabre@nondot.org> | 2007-05-06 05:18:53 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-05-06 05:18:53 +0000 |
commit | b94d80b6fbb97a72ece3e7dc131166a2f1faf467 (patch) | |
tree | bba8654b56563bbf9ec5b14ff7efb4fbe18d1d9a /llvm/lib/Debugger/Debugger.cpp | |
parent | cdda3a4ae5258058d216ad6e3aea194c0c3aad73 (diff) | |
download | bcm5719-llvm-b94d80b6fbb97a72ece3e7dc131166a2f1faf467.tar.gz bcm5719-llvm-b94d80b6fbb97a72ece3e7dc131166a2f1faf467.zip |
teach this to read from bitcode files
llvm-svn: 36843
Diffstat (limited to 'llvm/lib/Debugger/Debugger.cpp')
-rw-r--r-- | llvm/lib/Debugger/Debugger.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/llvm/lib/Debugger/Debugger.cpp b/llvm/lib/Debugger/Debugger.cpp index 613a19d2f3f..90741afc8e0 100644 --- a/llvm/lib/Debugger/Debugger.cpp +++ b/llvm/lib/Debugger/Debugger.cpp @@ -15,11 +15,15 @@ #include "llvm/Module.h" #include "llvm/ModuleProvider.h" #include "llvm/Bytecode/Reader.h" +#include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Debugger/InferiorProcess.h" +#include "llvm/Support/MemoryBuffer.h" #include "llvm/ADT/StringExtras.h" #include <memory> using namespace llvm; +static bool Bitcode = false; + /// Debugger constructor - Initialize the debugger to its initial, empty, state. /// Debugger::Debugger() : Environment(0), Program(0), Process(0) { @@ -45,7 +49,15 @@ std::string Debugger::getProgramPath() const { static Module * getMaterializedModuleProvider(const std::string &Filename) { - return ParseBytecodeFile(Filename); + if (Bitcode) { + return ParseBytecodeFile(Filename); + } else { + std::auto_ptr<MemoryBuffer> Buffer; + Buffer.reset(MemoryBuffer::getFileOrSTDIN(&Filename[0], Filename.size())); + if (Buffer.get()) + return ParseBitcodeFile(Buffer.get()); + return 0; + } } /// loadProgram - If a program is currently loaded, unload it. Then search |