- Mar 26, 2011
-
-
Stephen Wilson authored
llvm-svn: 128313
-
Stephen Wilson authored
llvm-svn: 128312
-
- Mar 25, 2011
-
-
Stephen Wilson authored
llvm-svn: 128291
-
Greg Clayton authored
plugin by name on the command line for when there is more than one disassembler plugin. Taught the Opcode class to dump itself so that "disassembler -b" will dump the bytes correctly for each opcode type. Modified all places that were passing the opcode bytes buffer in so that the bytes could be displayed to just pass in a bool that indicates if we should dump the opcode bytes since the opcode now lives inside llvm_private::Instruction. llvm-svn: 128290
-
Greg Clayton authored
Modified the Disassembler::Instruction base class to contain an Opcode instance so that we can know the bytes for an instruction without needing to keep the data around. Modified the DisassemblerLLVM's instruction class to correctly extract the opcode bytes if all goes well. llvm-svn: 128248
-
- Mar 24, 2011
-
-
Greg Clayton authored
public types and public enums. This was done to keep the SWIG stuff from parsing all sorts of enums and types that weren't needed, and allows us to abstract our API better. llvm-svn: 128239
-
Caroline Tice authored
Fix small bug in ThumbExpandImm_C; arguments to a call to 'bits' were in the wrong order. llvm-svn: 128237
-
Caroline Tice authored
Add missing encodings for EmulateLDRRtRnImm (ARM insn emulation funciton). llvm-svn: 128229
-
Greg Clayton authored
On Mac OS X we now have 3 platforms: PlatformDarwin - must be subclassed to fill in the missing pure virtual funcs but this implements all the common functionality between remote-macosx and remote-ios. It also allows for another platform to be used (remote-gdb-server for now) when doing remote connections. Keeping this pluggable will allow for flexibility. PlatformMacOSX - Now implements both local and remote macosx desktop platforms. PlatformRemoteiOS - Remote only iOS that knows how to locate SDK files in the cached SDK locations on the host. A new agnostic platform has been created: PlatformRemoteGDBServer - this implements the platform using the GDB remote protocol and uses the built in lldb_private::Host static functions to implement many queries. llvm-svn: 128193
-
- Mar 23, 2011
-
-
Stephen Wilson authored
llvm-svn: 128137
-
Stephen Wilson authored
Add a few missing virtual methods to PlatformLinux and have it register itself with PluginManager. llvm-svn: 128128
-
Greg Clayton authored
platform connect <args> platform disconnect Each platform can decide the args they want to use for "platform connect". I will need to add a function that gets the connect options for the current platform as each one can have different options and argument counts. Hooked up more functionality in the PlatformMacOSX and PlatformRemoteiOS. Also started an platform agnostic PlatformRemoteGDBServer.cpp which can end up being used by one or more actual platforms. It can also be specialized and allow for platform specific commands. llvm-svn: 128123
-
- Mar 22, 2011
-
-
Caroline Tice authored
More fixes for ARM instruction emulation code: - Remove duplicate write from EmulateLDRRtPCRelative. - Add a missing encoding to EmulateADDSPImm. - Fix minor problems in Thumb instruction tables. llvm-svn: 128115
-
Greg Clayton authored
GDBRemoteCommunication - The base GDB remote communication class GDBRemoteCommunicationClient - designed to be used for clients the connect to a remote GDB server GDBRemoteCommunicationServer - designed to be used on the server side of a GDB server implementation. llvm-svn: 128070
-
Jim Ingham authored
Add the ability to disassemble "n" instructions from the current PC, or the first "n" instructions in a function. Also added a "-p" flag that disassembles from the current pc. llvm-svn: 128063
-
- Mar 20, 2011
-
-
Greg Clayton authored
static archive that can be linked against. LLDB.framework/lldb.so exports a very controlled API. Splitting the API into a static library allows other tools (debugserver for now) to use the power of the LLDB debugger core, yet not export it as its API is not portable or maintainable. The Host layer and many of the other internal only APIs can now be statically linked against. Now LLDB.framework/lldb.so links against "liblldb-core.a" instead of compiling the .o files only for the shared library. This fix is only for compiling with Xcode as the Makefile based build already does this. The Xcode projecdt compiler has been changed to LLVM. Anyone using Xcode 3 will need to manually change the compiler back to GCC 4.2, or update to Xcode 4. llvm-svn: 127963
-
- Mar 19, 2011
-
-
Greg Clayton authored
platform status -- gets status information for the selected platform platform create <platform-name> -- creates a new instance of a remote platform platform list -- list all available platforms platform select -- select a platform instance as the current platform (not working yet) When using "platform create" it will create a remote platform and make it the selected platform. For instances for iPhone OS debugging on Mac OS X one can do: (lldb) platform create remote-ios --sdk-version=4.0 Remote platform: iOS platform SDK version: 4.0 SDK path: "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0" Not connected to a remote device. (lldb) file ~/Documents/a.out Current executable set to '~/Documents/a.out' (armv6). (lldb) image list [ 0] /Volumes/work/gclayton/Documents/devb/attach/a.out [ 1] /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0/Symbols/usr/lib/dyld [ 2] /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0/Symbols/usr/lib/libSystem.B.dylib Note that this is all happening prior to running _or_ connecting to a remote platform. Once connected to a remote platform the OS version might change which means we will need to update our dependecies. Also once we run, we will need to match up the actualy binaries with the actualy UUID's to files in the SDK, or download and cache them locally. This is just the start of the remote platforms, but this modification is the first iteration in getting the platforms really doing something. llvm-svn: 127934
-
- Mar 18, 2011
-
-
Caroline Tice authored
Fix various small problems with EmulateInstructionARM::EmulateSTRRtSP. llvm-svn: 127898
-
Jim Ingham authored
ObjC runtime for print object to Pointer AND Integer (from just pointer.) llvm-svn: 127841
-
Caroline Tice authored
Make all the codee that attempts to read the PC consistently use ReadCoreReg (which 'does the right thing', adding to pc when needed); fixed places in code where extra addition was being passed along. Fix bug in insn tables. llvm-svn: 127838
-
- Mar 17, 2011
-
-
Jim Ingham authored
Fix a problem where we were looking up the class pointer in the {class/sel -> implementation} cache for a objc_msgSendSuper call - where we should have looked up the class's super-class. llvm-svn: 127830
-
Jim Ingham authored
llvm-svn: 127825
-
- Mar 16, 2011
-
-
Caroline Tice authored
Add code to emulate STRH (Register) Arm instruction. Remove inaccurate comments from EmulateInstruction::Context definition. Fix contexts in a few arm instruction emulation routines. llvm-svn: 127770
-
Caroline Tice authored
Fix various small bugs found in the instruction emulation functions. llvm-svn: 127712
-
- Mar 15, 2011
-
-
Greg Clayton authored
for templatized types that could cause parts of a std::vector (and I am sure other STL types) to be incorrectly uniqued to each other wreaking havoc on variable display for types within the same executable module. llvm-svn: 127662
-
Greg Clayton authored
llvm-svn: 127659
-
Sean Callanan authored
llvm-svn: 127634
-
- Mar 10, 2011
-
-
Stephen Wilson authored
This patch supports building the Linux platform plugin, and should also support the MacOSX plugin as well (the MacOSX side has not been tested, unfortunately). A small typo was corrected in lldb.cpp to initialize the new platform code on Linux. llvm-svn: 127393
-
Greg Clayton authored
member variable (m_packet_timeout which is a value in seconds). This value is then used for all packets sent to/from the remote GDB server. llvm-svn: 127392
-
- Mar 09, 2011
-
-
Sean Callanan authored
ARM disassembler was wrong, causing the disassembler to fail to initialize. llvm-svn: 127302
-
- Mar 08, 2011
-
-
Greg Clayton authored
an interface to a local or remote debugging platform. By default each host OS that supports LLDB should be registering a "default" platform that will be used unless a new platform is selected. Platforms are responsible for things such as: - getting process information by name or by processs ID - finding platform files. This is useful for remote debugging where there is an SDK with files that might already or need to be cached for debug access. - getting a list of platform supported architectures in the exact order they should be selected. This helps the native x86 platform on MacOSX select the correct x86_64/i386 slice from universal binaries. - Connect to remote platforms for remote debugging - Resolving an executable including finding an executable inside platform specific bundles (macosx uses .app bundles that contain files) and also selecting the appropriate slice of universal files for a given platform. So by default there is always a local platform, but remote platforms can be connected to. I will soon be adding a new "platform" command that will support the following commands: (lldb) platform connect --name machine1 macosx connect://host:port Connected to "machine1" platform. (lldb) platform disconnect macosx This allows LLDB to be well setup to do remote debugging and also once connected process listing and finding for things like: (lldb) process attach --name x<TAB> The currently selected platform plug-in can now auto complete any available processes that start with "x". The responsibilities for the platform plug-in will soon grow and expand. llvm-svn: 127286
-
Stephen Wilson authored
ELF object files do not implicitly have a symbol named "start" as an entry point. For example, on Linux it is often named "_start", but can be trivially set to any symbol by passing an --entry argument to the linker. Use the ELF header to determine the entry point and resolve the associated section based on that address. Also, update the linux dynamic loader to call GetEntryPointAddress instead of GetEntryPoint. llvm-svn: 127218
-
Stephen Wilson authored
llvm-svn: 127215
-
Jim Ingham authored
I didn't notice there was already an ObjectFile::GetEntryPoint. Move that over to GetEntryPointAddress 'cause that's more consistent with other functions in ObjectFile, do the mutatis mutandi and also in the ELF case I return a section offset address rather than a bare load address. llvm-svn: 127205
-
Jim Ingham authored
Reverting the part of the debug-in-ofile patch from earlier today that removes them from the shared module list. That was causing a bunch of asserts. Greg is working on a better fix. llvm-svn: 127201
-
Jim Ingham authored
Add a method "GetEntryPoint" to the ObjectFile class, and implement it on MachO & ELF - though the ELF implementation is probably a little weak. Then use this method in place of directly looking for "start" in the ThreadPlanCallFunction constructor to find the stopping point for our function evaluation. llvm-svn: 127194
-
- Mar 07, 2011
-
-
Greg Clayton authored
then we end up using older .o files with out of date section remappings if we debug, compile + fix, and debug again. llvm-svn: 127166
-
- Mar 05, 2011
-
-
Greg Clayton authored
It will just load all files exactly where the files state they are (file addresses == load addresses). This is used when the llvm::Triple::OSType is set to llvm::Triple::UnknownOS or llvm::Triple::NoOS. llvm-svn: 127053
-
- Mar 04, 2011
-
-
Greg Clayton authored
chosing which FP back-chain methods to use since we can rely upon generic register numbers after that. llvm-svn: 127044
-
- Mar 03, 2011
-
-
Caroline Tice authored
Add code to emulate RFE Arm instruction. Add new instruction context for RFE instruction. Add several new helper functions to help emulate RFE instruction (including CurrentModeIsPrivileged, BadMode, and CPSRWriteByInstr). llvm-svn: 126965
-