47e3ed8707f7e49f79e2923e4d14f34dd243317c |
|
28-Jun-2013 |
Greg Clayton <gclayton@apple.com> |
ArchSpec doesn't need a virtual destructor. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@185208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
2099b6a42713fedae3b86b2ae5dbc2ff6ec6f175 |
|
08-Mar-2013 |
Jason Molenda <jmolenda@apple.com> |
Add recognition of two more armv7 variants, armv7m and armv7em. <rdar://problem/13361372> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
36da2aa6dc5ad9994b638ed09eb81c44cc05540b |
|
25-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13069948> Major fixed to allow reading files that are over 4GB. The main problems were that the DataExtractor was using 32 bit offsets as a data cursor, and since we mmap all of our object files we could run into cases where if we had a very large core file that was over 4GB, we were running into the 4GB boundary. So I defined a new "lldb::offset_t" which should be used for all file offsets. After making this change, I enabled warnings for data loss and for enexpected implicit conversions temporarily and found a ton of things that I fixed. Any functions that take an index internally, should use "size_t" for any indexes and also should return "size_t" for any sizes of collections. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
40e278caddf5442776f9408f20d757cc85fe630a |
|
13-Dec-2012 |
Sean Callanan <scallanan@apple.com> |
Removed the == and != operators from ArchSpec, since equality can be strict or loose and we want code to explicitly choose one or the other. Also renamed the Compare function to IsEqualTo, to avoid confusion. <rdar://problem/12856749> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
6e3f97b4bbb9ed2918215d2247067fff949d1aa4 |
|
04-Nov-2012 |
Jason Molenda <jmolenda@apple.com> |
Add new ArchSpec methods, IsCompatibleMatch() and IsExactMatch(). The operator== method is a synonym for IsExactMatch(). The essential difference between these two is that IsCompatibleMatch() will say that armv7 and armv7s are compatible and return true. IsExactMatch() will say that armv7 and armv7s are not a match. An armv7s cpu can run either generic armv7 binaries or armv7s binaries (the latter being tuned for it). When we're picking the slice of a universal Mach-O file to load in an armv7s Target, we need to be able to first look for an exact cpu subtype match (armv7s == armv7s) and failing that, looking for a slice with a compatible architecture. Update ObjectContainerUniversalMachO::GetObjectFile to prefer an exact match of the cpu type, falling back to a compatible match if necessary. <rdar://problem/12593515> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
a53324d018afb71a1a53840c426aab47edb56383 |
|
20-Sep-2012 |
Greg Clayton <gclayton@apple.com> |
A patch that allows for mach-o architectures to be specified as "<number>-<number>" where the first number is the cpu type and the second is the cpu subtype. Also added code to allow use of mach-o architectures that aren't in our tables so that symbolication and static file introspection (crashlogs) can work with them. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
b170aee2daacc83e3d71c3e3acc9d56c89893a7b |
|
08-May-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11358639> Switch over to the "*-apple-macosx" for desktop and "*-apple-ios" for iOS triples. Also make the selection process for auto selecting platforms based off of an arch much better. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
a5fd1761e694de335770b29fb66ce8794b0f34f9 |
|
16-Dec-2011 |
Greg Clayton <gclayton@apple.com> |
Handle all of the "thumb" target triple architecture variants that llvm handles. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
41a857a34dd83831c4e9db23179608cb8bd28328 |
|
29-Oct-2011 |
Jason Molenda <jmolenda@apple.com> |
finish removal of alpha arch -- previous half-removal caused lldb to assert on startup git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@143294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
25dcbeb046c056f1c8a8244c548dc410c425fa46 |
|
15-Sep-2011 |
Jim Ingham <jingham@apple.com> |
Fix ArchSpec::operator== to take the Triple into account as well as the Core. Also make the constructors explicit. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
5e342f50b42b265d8568e1c926328858e74b2c0a |
|
14-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Added auto completion for architecture names and for platforms. Modified the OptionGroupOptions to be able to specify only some of the options that should be appended by using the usage_mask in the group defintions and also provided a way to remap them to a new usage mask after the copy. This allows options to be re-used and also targetted for specific option groups. Modfied the CommandArgumentType to have a new eArgTypePlatform enumeration. Taught the option parser to be able to automatically use the appropriate auto completion for a given options if nothing is explicitly specified in the option definition. So you don't have to specify it in the option definition tables. Renamed the default host platform name to "host", and the default platform hostname to be "localhost". Modified the "file" and "platform select" commands to make sure all options and args are good prior to creating a new platform. Also defer the computation of the architecture in the file command until all options are parsed and the platform has either not been specified or reset to a new value to avoid computing the arch more than once. Switch the PluginManager code over to using llvm::StringRef for string comparisons and got rid of all the AccessorXXX functions in lieu of the newer mutex + collection singleton accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
f15996eea072cdaa8a092f22d3a1212b3d95f0ec |
|
08-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Modified the ArchSpec to take an optional "Platform *" when setting the triple. This allows you to have a platform selected, then specify a triple using "i386" and have the remaining triple items (vendor, os, and environment) set automatically. Many interpreter commands take the "--arch" option to specify an architecture triple, so now the command options needed to be able to get to the current platform, so the Options class now take a reference to the interpreter on construction. Modified the build LLVM building in the Xcode project to use the new Xcode project level user definitions: LLVM_BUILD_DIR - a path to the llvm build directory LLVM_SOURCE_DIR - a path to the llvm sources for the llvm that will be used to build lldb LLVM_CONFIGURATION - the configuration that lldb is built for (Release, Release+Asserts, Debug, Debug+Asserts). I also changed the LLVM build to not check if "lldb/llvm" is a symlink and then assume it is a real llvm build directory versus the unzipped llvm.zip package, so now you can actually have a "lldb/llvm" directory in your lldb sources. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
889fbd0581c24523642e0a04d659cc8f3dcdb4ed |
|
26-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get the min and max instruction byte size for an architecture into ArchSpec: uint32_t ArchSpec::GetMinimumOpcodeByteSize() const; uint32_t ArchSpec::GetMaximumOpcodeByteSize() const; Added an AddressClass to the Instruction class in Disassembler.h. This allows decoded instructions to know know if they are code, code with alternate ISA (thumb), or even data which can be mixed into code. The instruction does have an address, but it is a good idea to cache this value so we don't have to look it up more than once. Fixed an issue in Opcode::SetOpcodeBytes() where the length wasn't getting set. Changed: bool SymbolContextList::AppendIfUnique (const SymbolContext& sc); To: bool SymbolContextList::AppendIfUnique (const SymbolContext& sc, bool merge_symbol_into_function); This function was typically being used when looking up functions and symbols. Now if you lookup a function, then find the symbol, they can be merged into the same symbol context and not cause multiple symbol contexts to appear in a symbol context list that describes the same function. Fixed the SymbolContext not equal operator which was causing mixed mode disassembly to not work ("disassembler --mixed --name main"). Modified the disassembler classes to know about the fact we know, for a given architecture, what the min and max opcode byte sizes are. The InstructionList class was modified to return the max opcode byte size for all of the instructions in its list. These two fixes means when disassemble a list of instructions and dump them and show the opcode bytes, we can format the output more intelligently when showing opcode bytes. This affects any architectures that have varying opcode byte sizes (x86_64 and i386). Knowing the max opcode byte size also helps us to be able to disassemble N instructions without having to re-read data if we didn't read enough bytes. Added the ability to set the architecture for the disassemble command. This means you can easily cross disassemble data for any supported architecture. I also added the ability to specify "thumb" as an architecture so that we can force disassembly into thumb mode when needed. In GDB this was done using a hack of specifying an odd address when disassembling. I don't want to repeat this hack in LLDB, so the auto detection between ARM and thumb is failing, just specify thumb when disassembling: (lldb) disassemble --arch thumb --name main You can also have data in say an x86_64 file executable and disassemble data as any other supported architecture: % lldb a.out Current executable set to 'a.out' (x86_64). (lldb) b main (lldb) run (lldb) disassemble --arch thumb --count 2 --start-address 0x0000000100001080 --bytes 0x100001080: 0xb580 push {r7, lr} 0x100001082: 0xaf00 add r7, sp, #0 Fixed Target::ReadMemory(...) to be able to deal with Address argument object that isn't section offset. When an address object was supplied that was out on the heap or stack, target read memory would fail. Disassembly uses Target::ReadMemory(...), and the example above where we disassembler thumb opcodes in an x86 binary was failing do to this bug. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
b344843f75ef893762c93fd0a22d2d45712ce74d |
|
24-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed the LLDB build so that we can have private types, private enums and 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
b1888f24fa181489840b9acf193e224d125d0776 |
|
19-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Added more platform support. There are now some new commands: 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
b7af465a97de8d110074f0c814d65ce4416ca9ab |
|
24-Feb-2011 |
Stephen Wilson <wilsons@start.ca> |
ArchSpec: Do not depend on Host::GetArchitecture. The major issue this patch solves is that ArchSpec::SetTriple no longer depends on the implementation of Host::GetArchitecture. On linux, Host::GetArchitecture calls ArchSpec::SetTriple, thus blowing the stack. A second smaller point is that SetTriple now defaults to Host defined components iff all OS, vendor and environment fields are not set. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
940b103224f3062578c7a7e6e76d8bf4a7956f2a |
|
23-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Abtracted all mach-o and ELF out of ArchSpec. This patch is a modified form of Stephen Wilson's idea (thanks for the input Stephen!). What I ended up doing was: - Got rid of ArchSpec::CPU (which was a generic CPU enumeration that mimics the contents of llvm::Triple::ArchType). We now rely upon the llvm::Triple to give us the machine type from llvm::Triple::ArchType. - There is a new ArchSpec::Core definition which further qualifies the CPU core we are dealing with into a single enumeration. If you need support for a new Core and want to debug it in LLDB, it must be added to this list. In the future we can allow for dynamic core registration, but for now it is hard coded. - The ArchSpec can now be initialized with a llvm::Triple or with a C string that represents the triple (it can just be an arch still like "i386"). - The ArchSpec can still initialize itself with a architecture type -- mach-o with cpu type and subtype, or ELF with e_machine + e_flags -- and this will then get translated into the internal llvm::Triple::ArchSpec + ArchSpec::Core. The mach-o cpu type and subtype can be accessed using the getter functions: uint32_t ArchSpec::GetMachOCPUType () const; uint32_t ArchSpec::GetMachOCPUSubType () const; But these functions are just converting out internal llvm::Triple::ArchSpec + ArchSpec::Core back into mach-o. Same goes for ELF. All code has been updated to deal with the changes. This should abstract us until later when the llvm::TargetSpec stuff gets finalized and we can then adopt it. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
7095fa37a059bf4924c87cbd89999d0656e09dd4 |
|
17-Feb-2011 |
Stephen Wilson <wilsons@start.ca> |
Do not use constants from stdint.h that we cannot portably provide on all platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
b1a22bed0c669cbce8e25e8ca2517df3bdc8a98d |
|
16-Feb-2011 |
Stephen Wilson <wilsons@start.ca> |
Use SIZE_MAX instead of SIZE_T_MAX for portability. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
395fc33dc4b06c048ed35047ec461bc092ef2df3 |
|
15-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Made lldb_private::ArchSpec contain much more than just an architecture. It now, in addition to cpu type/subtype and architecture flavor, contains: - byte order (big endian, little endian) - address size in bytes - llvm::Triple for true target triple support and for more powerful plug-in selection. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
0f577c2ab79604f7300ac66afebcaa4a4b2dceef |
|
07-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Added a "ArchSpec::SetElfArch()" that was removed by a previous patch and avoid using RTLD_FIRST with dlopen to keep things compatible with other *NIX variants. Patch from Jai Menon. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
e71e258286a1713dbb2d366d8b81ff2f28e0216f |
|
04-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Added support for attaching to a remote debug server with the new command: (lldb) process connect <remote-url> Currently when you specify a file with the file command it helps us to find a process plug-in that is suitable for debugging. If you specify a file you can rely upon this to find the correct debugger plug-in: % lldb a.out Current executable set to 'a.out' (x86_64). (lldb) process connect connect://localhost:2345 ... If you don't specify a file, you will need to specify the plug-in name that you wish to use: % lldb (lldb) process connect --plugin process.gdb-remote connect://localhost:2345 Other connection URL examples: (lldb) process connect connect://localhost:2345 (lldb) process connect tcp://127.0.0.1 (lldb) process connect file:///dev/ttyS1 We are currently treating the "connect://host:port" as a way to do raw socket connections. If there is a URL for this already, please let me know and we will adopt it. So now you can connect to a remote debug server with the ProcessGDBRemote plug-in. After connection, it will ask for the pid info using the "qC" packet and if it responds with a valid process ID, it will be equivalent to attaching. If it response with an error or invalid process ID, the LLDB process will be in a new state: eStateConnected. This allows us to then download a program or specify the program to run (using the 'A' packet), or specify a process to attach to (using the "vAttach" packets), or query info about the processes that might be available. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
fec663fa5fa8f793a9f77910ecf05a559893bffd |
|
11-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix warning. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
cf0150574a0a97049efe2dce2cc0aa433705feb3 |
|
11-Jun-2010 |
Greg Clayton <gclayton@apple.com> |
Made lldb_private::ArchSpec more generic so that it can take a mach-o cpu type and sub-type, or an ELF e_machine value. Also added a generic CPU type to the arch spec class so we can have a single arch definition that the LLDB core code can use. Previously a lot of places in the code were using the mach-o definitions from a macosx header file. Switches over to using "llvm/Support/MachO.h" for the llvm::MachO::XXX for the CPU types and sub types for mach-o ArchSpecs. Added "llvm/Support/ELF.h" so we can use the "llvm::ELF::XXX" defines for the ELF ArchSpecs. Got rid of all CPU_TYPE_ and CPU_SUBTYPE_ defines that were previously being used in LLDB. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|
24943d2ee8bfaa7cf5893e4709143924157a5c1e |
|
08-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of lldb code from internal Apple repo. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/ArchSpec.h
|