summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
* Reset the debug status register, only if necessary, before we resume,Johnny Chen2011-09-092-9/+27
| | | | | | which saves unnecessary traffic to the kernel. llvm-svn: 139410
* Fix compiler warnings for GetGDBStoppointType().Johnny Chen2011-09-091-2/+2
| | | | llvm-svn: 139402
* Added first pass at PE COFF file reading support. It parses the sectionsGreg Clayton2011-09-094-2/+1057
| | | | | | | correctly, symbols are coming soon. It also needs to be 32/64 bit hardened with more testing. llvm-svn: 139401
* Adding two new options to the 'help' command:Enrico Granata2011-09-097-6/+118
| | | | | | | | | | | --show-aliases (-a) shows aliases for commands, as well as built-in commands --hide-user-defined (-u) hides user defined commands by default 'help' without arguments does not show aliases anymore. to see them, add --show-aliases to have only built-in commands appear, use 'help --hide-user-defined' ; there is currently no way to hide built-in commands from the help output 'help command' is not changed by this commit, and help is shown even if command is an alias and -a is not specified llvm-svn: 139377
* Fixed the error message:Johnny Chen2011-09-091-33/+33
| | | | | | | | ./build-swig-Python.sh: line 76: INTERFACE_FILES: command not found when running SWIG, which was introduced during the last checkin. llvm-svn: 139376
* Objective-C runtime wrapperEnrico Granata2011-09-091-0/+128
| | | | llvm-svn: 139372
* Fixing an issue with Python commands defined interactivelyEnrico Granata2011-09-091-1/+1
| | | | llvm-svn: 139345
* Patch from Pilipe to allow "target create" on the remote-macosx platform!Johnny Chen2011-09-091-1/+11
| | | | llvm-svn: 139342
* FreeBSD platform patch from Filipe!Johnny Chen2011-09-092-178/+570
| | | | llvm-svn: 139338
* Basic infrastructure code to exploit malloc stack logging as available on ↵Enrico Granata2011-09-094-0/+246
| | | | | | Mac OS X to track the allocation history of pointers on the target process llvm-svn: 139337
* Patch from Filipe!Johnny Chen2011-09-092-2/+3
| | | | | | | One fixes a trailing comma bug (g++ doesn't like them) The other gets the Error from the result of an expression evaluation and uses it as the error for the Process::LoadImage() method. llvm-svn: 139336
* Remove code rot (unused class OptionGroupFrameVariable) from ↵Johnny Chen2011-09-081-81/+1
| | | | | | | | CommandObjectFrameVariable. Plus minor indentation change. llvm-svn: 139335
* Move the SourceManager from the Debugger to the Target. That way it can ↵Jim Ingham2011-09-0823-164/+260
| | | | | | | | | | store the per-Target default Source File & Line. Set the default Source File & line to main (if it can be found.) at startup. Selecting the current thread & or frame resets the current source file & line, and "source list" as well as the breakpoint command "break set -l <NUM>" will use the current source file. llvm-svn: 139323
* Watchpoint WIP: on the debugger side, create an instance of eitherJohnny Chen2011-09-083-1/+15
| | | | | | StopInfoTrace or StopInfoWatchpoint based on the exc_sub_code, as well. llvm-svn: 139315
* Added help on stack frame selection compared to GDB and corrected the registerGreg Clayton2011-09-081-8/+89
| | | | | | command help to match the current LLDB. llvm-svn: 139313
* Added comments about exception code.Johnny Chen2011-09-082-0/+4
| | | | llvm-svn: 139294
* Add logic to the DNBArchImplX86_64/DNBArchImplI386::NotifyException() ↵Johnny Chen2011-09-084-27/+95
| | | | | | | | | | | | | callback method in order to distinguish the real single step exception from a watchpoint exception which uses the same exc_type of EXC_BREAKPOINT and exc_code of EXC_I386_SGL. This is done by checking the debug status register to find out whether the watchpoint data break event has fired, and, if yes, stuff the data break address into the exception's exc_sub_code field on the debugserver side for lldb to consume on the other end. llvm-svn: 139274
* "frame select -r" should return an error if you are already at the top of ↵Jim Ingham2011-09-081-2/+22
| | | | | | the stack & try to go up or at the bottom and try to go down. llvm-svn: 139273
* other documentation changesEnrico Granata2011-09-081-31/+51
| | | | llvm-svn: 139271
* documentation changes (WIP)Enrico Granata2011-09-071-154/+153
| | | | llvm-svn: 139249
* Add logic to MachThreadList::GetThreadID() for the use case of setting a ↵Johnny Chen2011-09-072-6/+18
| | | | | | | | | | | | | watchpoint (MachThreadList::EnableHardwareWatchpoint()) where the watchpoint is not associated with a thread and the current thread, if set, is returned, otherwise we return the first thread. Plus minor change to RNBRemote::HandlePacket_z() to use the existing macros to check the validity of break_id/watch_id. llvm-svn: 139246
* Minor change: compare the return val of DNBWatchpointSet() against ↵Johnny Chen2011-09-071-2/+2
| | | | | | | | INVALID_NUB_WATCH_ID to determine its validity. llvm-svn: 139209
* Refactoring of Get() methods in FormatManager/FormatCategory to have ↵Enrico Granata2011-09-067-90/+120
| | | | | | | | | explicative names and return shared-pointers instead of bools Reduced the amount of memory required to avoid loops in DumpPrintableRepresentation() from 32 bits down to 1 bit - Additionally, disallowed creating summary strings of the form ${var%S} which did nothing but cause endless loops by definition llvm-svn: 139201
* Fill out implementation of Enable/DisableWatchpoint() for ProcessGDBRemote ↵Johnny Chen2011-09-063-6/+48
| | | | | | | | class (Not Tested Yet). Also update the signature of WatchpointLocation::SetEnable() to take a bool as input arg. llvm-svn: 139198
* Test should print to stdout only if self.TraceOn() is True.Johnny Chen2011-09-061-10/+20
| | | | llvm-svn: 139174
* Add a data type WatchpointLocationList to the repository. A Target contains ↵Johnny Chen2011-09-067-0/+392
| | | | | | | | an instance of watchpoint location list. Also add a typefed for WatchpointLocationSP to lldb-forward-rtti.h. llvm-svn: 139166
* DNBBreakpoint::SetEnabled() should take a bool, not a uint32_t, as its input ↵Johnny Chen2011-09-063-7/+9
| | | | | | | | | argument. Plus for watchpoint related functions, add new macros INVALID_NUB_WATCH_ID and NUB_WATCH_ID_IS_VALID and use them, instead. llvm-svn: 139163
* Redesign of the interaction between Python and frozen objects:Enrico Granata2011-09-0669-698/+3326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - introduced two new classes ValueObjectConstResultChild and ValueObjectConstResultImpl: the first one is a ValueObjectChild obtained from a ValueObjectConstResult, the second is a common implementation backend for VOCR and VOCRCh of method calls meant to read through pointers stored in frozen objects ; now such reads transparently move from host to target as required - as a consequence of the above, removed code that made target-memory copies of expression results in several places throughout LLDB, and also removed code that enabled to recognize an expression result VO as such - introduced a new GetPointeeData() method in ValueObject that lets you read a given amount of objects of type T from a VO representing a T* or T[], and doing dereferences transparently in private layer it returns a DataExtractor ; in public layer it returns an instance of a newly created lldb::SBData - as GetPointeeData() does the right thing for both frozen and non-frozen ValueObject's, reimplemented ReadPointedString() to use it en lieu of doing the raw read itself - introduced a new GetData() method in ValueObject that lets you get a copy of the data that backs the ValueObject (for pointers, this returns the address without any previous dereferencing steps ; for arrays it actually reads the whole chunk of memory) in public layer this returns an SBData, just like GetPointeeData() - introduced a new CreateValueFromData() method in SBValue that lets you create a new SBValue from a chunk of data wrapped in an SBData the limitation to remember for this kind of SBValue is that they have no address: extracting the address-of for these objects (with any of GetAddress(), GetLoadAddress() and AddressOf()) will return invalid values - added several tests to check that "p"-ing objects (STL classes, char* and char[]) will do the right thing Solved a bug where global pointers to global variables were not dereferenced correctly for display New target setting "max-string-summary-length" gives the maximum number of characters to show in a string when summarizing it, instead of the hardcoded 128 Solved a bug where the summary for char[] and char* would not be shown if the ValueObject's were dumped via the "p" command Removed m_pointers_point_to_load_addrs from ValueObject. Introduced a new m_address_type_of_children, which each ValueObject can set to tell the address type of any pointers and/or references it creates. In the current codebase, this is load address most of the time (the only notable exception being file addresses that generate file address children UNLESS we have a live process) Updated help text for summary-string Fixed an issue in STL formatters where std::stlcontainer::iterator would match the container's synthetic children providers Edited the syntax and help for some commands to have proper argument types llvm-svn: 139160
* Change the signature of WatchpointLocation ctor so that the second param becomesJohnny Chen2011-09-062-3/+3
| | | | | | | 'size_t size', instead of 'lldb::tid_t tid'. Pass size to the StoppointLocation ctor as well. llvm-svn: 139131
* Watchpoint work in progress:Johnny Chen2011-09-025-0/+71
| | | | | | | | | | | Add a virtual method GetHardwareWatchpointHit() to the DNBArchProtocol base class which consults the architecture to return the watchpoint hit; otherwise return an invalid index. Add impl. of the method to X86_64 and I386 subclasses, plus reset the debug status register before we resume execution of the inferior thread. llvm-svn: 139034
* Added alpha .debug_names and .debug_types support in the DWARF parser.Greg Clayton2011-09-025-31/+151
| | | | llvm-svn: 138996
* Added the ability for DWARF locations to use the ABI plug-ins to resolveGreg Clayton2011-09-029-322/+451
| | | | | | | | register names when dumping variable locations and location lists. Also did some cleanup where "int" types were being used for "lldb::RegisterKind" values. llvm-svn: 138988
* Added files I forget to checkin with my last checkin.Greg Clayton2011-09-012-0/+235
| | | | llvm-svn: 138981
* Added support for accessing and loading our new .debug_names and .debug_typesGreg Clayton2011-09-019-35/+278
| | | | | | | | | | | | | | | | | | DWARF accelerator table sections to the DWARF parser. These sections are similar to the .debug_pubnames and .debug_pubtypes, but they are designed to be hash tables that are saved to disc in a way that the sections can just be loaded into memory and used without any work on the debugger side. The .debug_pubnames and .debug_pubtypes sections are not ordered, contain a copy of the name in the section itself which makes these sections quite large, they only include publicly exported names (so no static functions, no types defined inside functions), many compilers put different information in them making them very unreliable so most debugger ignore these sections and parse the DWARF on their own. The tables must also be parsed and sorted in order to be used effectively. The new sections can be quickly loaded and very efficiently be used to do name to DIE lookups with very little up front work. The format of these new sections will be changing while we work out the bugs, but we hope to have really fast name to DIE lookups soon. llvm-svn: 138979
* Forgot to write out the NULL terminator when putting C string value intoGreg Clayton2011-09-012-1/+2
| | | | | | | | a data using DataEncoder. Added DataEncoder to the lldb-forward.h file. llvm-svn: 138950
* Added a DataEncoder class for the new IR evaluation expression parser so itGreg Clayton2011-09-013-0/+814
| | | | | | can reserve a block of memory and store stuff into it. llvm-svn: 138949
* disassemble with no arguments disassembles at the pc. Also got "disassemble ↵Jim Ingham2011-09-012-8/+48
| | | | | | -f" to work, that had gotten broken at some point in the past. llvm-svn: 138929
* Renaming: from IsVacantWatchpoint() to IsWatchpointVacant().Johnny Chen2011-08-314-8/+8
| | | | llvm-svn: 138907
* Renamed the helper method to ClearWatchpointHits() for clarity of its purpose.Johnny Chen2011-08-314-4/+4
| | | | llvm-svn: 138899
* Add a couple of helper methods to check/clear the debug status registerJohnny Chen2011-08-314-0/+50
| | | | | | which contains the watchpoint hit information. llvm-svn: 138881
* Fix the shift amount applied to size_and_rw_bits() for debug control register,Johnny Chen2011-08-312-2/+4
| | | | | | which did not take into account the hardware index. llvm-svn: 138867
* Update comments.Johnny Chen2011-08-312-4/+4
| | | | llvm-svn: 138863
* Watchpoint work in progress: add helper methods to DNB arch impl for I386 to ↵Johnny Chen2011-08-313-48/+122
| | | | | | implment Enable/DisableHardwareWatchpoint. llvm-svn: 138847
* Watchpoint work in progress: add helper methods to DNB arch impl for X86_64 ↵Johnny Chen2011-08-313-44/+118
| | | | | | to implment Enable/DisableHardwareWatchpoint. llvm-svn: 138844
* Add stubs of incomplete watchpoint implementation with "FIXME" markers.Johnny Chen2011-08-305-6/+236
| | | | llvm-svn: 138790
* Added the debug registers for i386 and x86_64 in preparation for watchpoints.Greg Clayton2011-08-296-14/+104
| | | | llvm-svn: 138770
* Remove an extra break statement.Johnny Chen2011-08-291-2/+0
| | | | llvm-svn: 138763
* Patch by Filipe for FreeBSD platform plugin!Johnny Chen2011-08-292-15/+37
| | | | llvm-svn: 138761
* Fix a bunch of places where we were passing Stream *'s but wereJim Ingham2011-08-2712-142/+142
| | | | | | never checking them for NULL. Pass a reference instead. llvm-svn: 138694
* Don't change the host's environment, just append our Python Directory Jim Ingham2011-08-271-27/+21
| | | | | | directly to the one in sys. llvm-svn: 138693
OpenPOWER on IntegriCloud