summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a couple of utility functions plus some comments.Johnny Chen2011-02-111-0/+28
| | | | llvm-svn: 125416
* Cleaned up some parameter types and names.Johnny Chen2011-02-101-7/+7
| | | | llvm-svn: 125313
* Namings are important. Renamed Bits32(const uint32_t val, uint32_t bit) to ↵Johnny Chen2011-02-101-3/+3
| | | | | | | | Bit32(val, bit) and SetBits32(uint32_t &bits, uint32_t bit, uint32_t val) to SetBit32(bits, bit, val). llvm-svn: 125312
* Add a generic EmulateMovRdRm() method and modify/add entries to the ↵Johnny Chen2011-02-102-11/+36
| | | | | | | | g_thumb_opcodes table. Also add some more defines and convenience functions. llvm-svn: 125300
* linux: use IS_VALID_LLDB_HOST_THREAD.Stephen Wilson2011-02-091-4/+4
| | | | | | | Update the linux plugin code to use the new check for a valid host thread introduced in r125067. llvm-svn: 125213
* Added the DWARF unique type map such that we only create a type once in theGreg Clayton2011-02-091-1/+0
| | | | | | | | | | | | | | | | | module's AST context. Prior to this fix, with gcc binaries, we end up with a full class definition for any used classes in each compile unit due to the one definition rule. This would result in us making N copies of class T, where N is the number of compile units that use class T, in the module AST. When an expression would then try and use any types that were duplicated, it would quickly confuse clang and make expression evaluation fail due to all of the duplicate types that got copied over. This is now fixed by making a map of types in the DWARF that maps type names to a collection of types + declaration (file + line number) + DIE. Then later when we find a type we look in this module map and find any already cached types that we can just use. 8935777 llvm-svn: 125207
* Patch from Kirk Beitz to make things compile on MinGW minus the putenv part.Greg Clayton2011-02-091-1/+1
| | | | llvm-svn: 125199
* Fix comment text.Greg Clayton2011-02-091-1/+1
| | | | llvm-svn: 125162
* <rdar://problem/8972204> Test failure: ./dotest.py -v -t -f ↵Greg Clayton2011-02-091-31/+33
| | | | | | | | UniversalTestCase.test_process_launch_for_universal Fix for bad architecture settings that were being used from the qHostInfo. llvm-svn: 125161
* Rework the RunThreadPlan event handling to use Event Hijacking not stopping ↵Jim Ingham2011-02-081-0/+4
| | | | | | the event thread. Also clarify the logic of the function. llvm-svn: 125083
* Add _pthread_wqthread to the list of thread stop points, and change the ↵Jim Ingham2011-02-081-3/+4
| | | | | | logging a bit. llvm-svn: 125081
* Moved FileSpec into the Host layer since it will vary from host to host.Greg Clayton2011-02-082-2/+2
| | | | | | We have a common unix implementation in lldb/source/Host/common/FileSpec.cpp. llvm-svn: 125078
* Patch that allows for thread_t to be something more complex than anGreg Clayton2011-02-082-6/+9
| | | | | | integer. Modified patch from Kirk Beitz. llvm-svn: 125067
* Namespace patch for linux builds from Jai Menon.Greg Clayton2011-02-071-1/+2
| | | | llvm-svn: 125016
* Apple specific change from Kirk Beitz.Greg Clayton2011-02-051-1/+6
| | | | llvm-svn: 124941
* Added a quicker lookup in the SectionLoadList when looking things up byGreg Clayton2011-02-052-38/+25
| | | | | | | | section by using a DenseMap. Fixed some logging calls to get the log shared pointer. llvm-svn: 124926
* Add a utility class ITSession to maintain the ITState for the Thumb ISA.Johnny Chen2011-02-041-0/+9
| | | | llvm-svn: 124906
* Add some comments and a little utility to convert ARM conditions to strings.Johnny Chen2011-02-041-16/+38
| | | | llvm-svn: 124898
* Remove bzero use and replace with memset (patch from Kirk Beitz).Greg Clayton2011-02-042-7/+7
| | | | llvm-svn: 124897
* Patch to remove uses of non-standard strcasestr and replace then withGreg Clayton2011-02-042-55/+55
| | | | | | strncasecmp equivalents from Kirk Beitz. llvm-svn: 124889
* Added support for attaching to a remote debug server with the new command:Greg Clayton2011-02-043-22/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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. llvm-svn: 124846
* Fixed the SendInterrupt logic to return the true if the target was haltedGreg Clayton2011-02-031-6/+14
| | | | | | (regardless if the interrupt was sent), and false of not. llvm-svn: 124766
* A missed endian fix for the linux register context for x86_64.Greg Clayton2011-02-011-1/+1
| | | | llvm-svn: 124658
* Endian patch from Kirk Beitz that allows better cross platform building.Greg Clayton2011-02-019-55/+60
| | | | llvm-svn: 124643
* Made the EmulateInstruction class into a plug-in interface and moved theGreg Clayton2011-02-014-1732/+0
| | | | | | source files around into the places they need to go. llvm-svn: 124631
* Add emulate_pop (loads multiple registers from the stack) entries to both theJohnny Chen2011-01-312-4/+139
| | | | | | | | g_arm_opcodes and g_thumb_opcodes tables. Plus a minor comment fix for EmulateInstruction.h. llvm-svn: 124617
* Add emulate_add_sp_imm entry to the g_thumb_opcodes table, which represents ↵Johnny Chen2011-01-311-1/+70
| | | | | | | | an operation to adjust the stack pointer by adding an imm7-scaled value to the SP. llvm-svn: 124596
* Align comment.Johnny Chen2011-01-311-1/+1
| | | | llvm-svn: 124595
* Add some comments to the emulate_* functions.Johnny Chen2011-01-311-1/+6
| | | | llvm-svn: 124588
* Minor comment fix.Johnny Chen2011-01-311-4/+4
| | | | llvm-svn: 124586
* Added the start of the plug-in interface to EmulateInstructionGreg Clayton2011-01-303-5/+98
| | | | | | and implemented it for the EmulateInstructionARM class. llvm-svn: 124563
* Added some documentation that describes the purpose and the goalsGreg Clayton2011-01-301-1/+90
| | | | | | of the EmulateInstruction class. llvm-svn: 124562
* Finished up the async attach support. This allows us to request to attachGreg Clayton2011-01-293-134/+65
| | | | | | | by name or by pid (with or without waiting for a process to launch) and catch the response asynchronously. llvm-svn: 124530
* Add emulate_mov_low_high() entry to the g_thumb_opcodes table to capture movingJohnny Chen2011-01-291-3/+61
| | | | | | of high registers to low registers in the prologue so they can be saved. llvm-svn: 124509
* Add emulate_mov_rd_sp() entries to the g_arm_opcodes and g_thumb_opcodes tables.Johnny Chen2011-01-281-3/+61
| | | | | | For prolog instructions which set r7 or ip to the stack pointer. llvm-svn: 124501
* Add emulate_sub_r7_ip_imm() (set frame pointer to some ip offset) and ↵Johnny Chen2011-01-281-0/+112
| | | | | | | | emulate_sub_ip_sp_imm() ( set ip to some stack offset) entries to the g_arm_opcodes table. llvm-svn: 124466
* Fix a little thinko in sending down the thread name to SetName.Jim Ingham2011-01-281-1/+1
| | | | llvm-svn: 124464
* Should provide more useful context info for the emulate_ldr_rd_pc_rel() impl.Johnny Chen2011-01-281-10/+9
| | | | | | The context being that it's a PC relative load. llvm-svn: 124460
* If the user specfies one of stdin, stdout or stderr, don'tCaroline Tice2011-01-281-4/+17
| | | | | | automatically set the non-specified ones to /dev/null. llvm-svn: 124459
* Add emulate_ldr_rd_pc_rel entry to the g_thumb_opcodes table, which represents aJohnny Chen2011-01-272-4/+73
| | | | | | | PC relative immediate load into register, possibly followed by an add operation to adjust the SP. llvm-svn: 124448
* Add emulate_add_sp_rm entry to the g_thumb_opcodes table, which represents ↵Johnny Chen2011-01-271-10/+70
| | | | | | | | an operation to adjust the stack pointer by adding a register value in Rm to the SP. llvm-svn: 124400
* Finally tracked down the racy condition that would hose up our debugGreg Clayton2011-01-271-51/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sessions: When continue packet has been sent and an interrupt packet was quickly sent, it would get read at the same time: $c#00\x03 There was an error where the packet end index was always being computed incorrectly by debugserver, but it wouldn't matter if there weren't extra bytes on the end (the hex \x03 interrupt byte in this case). The first '$' last 3 bytes of the data in the packet buffer were being trimmed (trying to trim the '#' + checksum (#XX)) which made: c# And this would then be passed to the handle routine for the 'c' packet which would see an extra character at the end and assume it was going to be in the form c[addr] where "[addr]" was a hex address to resume at and this would result in a malformed packet response. This is now fixed and everything works great. Another issue was issuing async packets correctly by doing correct handshakes between the thread that wants to send the async packet, and the thread that is tracking the current run. Added a write lock to the communication class as well to make sure you never get two threads trying to write data at the same time. This wasn't happening, but it is a good idea to make sure it doesn't. llvm-svn: 124369
* Add emulate_add_rd_sp_imm (SP plus immediate) to the g_arm_opcodes and ↵Johnny Chen2011-01-272-31/+86
| | | | | | | | g_thumb_opcodes tables. Change the data type of Context.arg2 to int64_t due to possible negative values. llvm-svn: 124343
* Add emulate_vpush (stores multiple consecutive extension registers to the ↵Johnny Chen2011-01-261-3/+108
| | | | | | | | stack) entries to both the g_arm_opcodes and g_thumb_opcodes tables. llvm-svn: 124333
* Remove duplicated comments.Johnny Chen2011-01-261-2/+0
| | | | llvm-svn: 124262
* Move #define's out of ARMUtils.h and into a newly created file ARMDefines.h.Johnny Chen2011-01-263-36/+57
| | | | llvm-svn: 124261
* Move the generic instruction bits manipulation routines into a newly created ↵Johnny Chen2011-01-264-76/+91
| | | | | | | | file named InstructionUtils.h and modify some existing code to use them. llvm-svn: 124259
* Add Encoding T1 entry of emulate_sub_sp_imm to the g_thumb_opcodes table.Johnny Chen2011-01-262-1/+15
| | | | | | Update emulate_sub_sp_imm to handle Encoding T1. llvm-svn: 124253
* Enabled extra warnings and fixed a bunch of small issues.Greg Clayton2011-01-255-15/+9
| | | | llvm-svn: 124250
* Add Encoding T2 & T3 entries of emulate_sub_sp_imm to the g_thumb_opcodes table.Johnny Chen2011-01-252-11/+70
| | | | | | Update emulate_sub_sp_imm to handle Encoding T2 & T3. llvm-svn: 124248
OpenPOWER on IntegriCloud