summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
* Changed the emulate instruction function to take emulate options whichGreg Clayton2011-04-2631-414/+944
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | are defined as enumerations. Current bits include: eEmulateInstructionOptionAutoAdvancePC eEmulateInstructionOptionIgnoreConditions Modified the EmulateInstruction class to have a few more pure virtuals that can help clients understand how many instructions the emulator can handle: virtual bool SupportsEmulatingIntructionsOfType (InstructionType inst_type) = 0; Where instruction types are defined as: //------------------------------------------------------------------ /// Instruction types //------------------------------------------------------------------ typedef enum InstructionType { eInstructionTypeAny, // Support for any instructions at all (at least one) eInstructionTypePrologueEpilogue, // All prologue and epilogue instructons that push and pop register values and modify sp/fp eInstructionTypePCModifying, // Any instruction that modifies the program counter/instruction pointer eInstructionTypeAll // All instructions of any kind } InstructionType; This allows use to tell what an emulator can do and also allows us to request these abilities when we are finding the plug-in interface. Added the ability for an EmulateInstruction class to get the register names for any registers that are part of the emulation. This helps with being able to dump and log effectively. The UnwindAssembly class now stores the architecture it was created with in case it is needed later in the unwinding process. Added a function that can tell us DWARF register names for ARM that goes along with the source/Utility/ARM_DWARF_Registers.h file: source/Utility/ARM_DWARF_Registers.c Took some of plug-ins out of the lldb_private namespace. llvm-svn: 130189
* For lldbutil.py, Change a bunch of function names to all lower case formats ↵Johnny Chen2011-04-259-57/+56
| | | | | | | | to be consistent. And modify the test cases accordingly. llvm-svn: 130174
* Add 'lldb_private' namespace where necessary to prevent ambiguity andCaroline Tice2011-04-251-3/+3
| | | | | | resulting infinite loops. llvm-svn: 130159
* Move two functions around.Johnny Chen2011-04-251-40/+36
| | | | llvm-svn: 130158
* Renamed UnwindAssemblyProfiler to UnwindAssembly along with its source files.Greg Clayton2011-04-2516-79/+79
| | | | llvm-svn: 130156
* Even more renaming.Greg Clayton2011-04-254-15/+13
| | | | llvm-svn: 130155
* More moving things around for the unwind plan and assembly unwind plug-ins.Greg Clayton2011-04-2510-52/+286
| | | | llvm-svn: 130154
* Make SBBreakpointLocation::GetDescription() API to be consistent with SBTarget,Johnny Chen2011-04-255-8/+22
| | | | | | | | | | i.e., with 'SBStream &description' first, followed by 'DescriptionLevel level'. Modify lldbutil.py so that get_description() for a target or breakpoint location can just take the lldb object itself without specifying an option to mean option lldb.eDescriptionLevelBrief. Modify TestTargetAPI.py to exercise this logic path. llvm-svn: 130147
* Put plug-ins into the correct directories as they were incorrectly locatedGreg Clayton2011-04-2519-98/+131
| | | | | | in a Utility directory. llvm-svn: 130135
* Fix test failure for '-A i386'.Johnny Chen2011-04-251-1/+1
| | | | llvm-svn: 130134
* Update startstr argument of self.expect() to "a.out`sum(int, int)" to ↵Johnny Chen2011-04-251-1/+1
| | | | | | respond to recent change. llvm-svn: 130133
* Fixed the SymbolContext::DumpStopContext() to correctly indent and dumpGreg Clayton2011-04-2324-142/+649
| | | | | | | | | | | | | | | | | inline contexts when the deepest most block is not inlined. Added source path remappings to the lldb_private::Target class that allow it to remap paths found in debug info so we can find source files that are elsewhere on the current system. Fixed disassembly by function name to disassemble inline functions that are inside other functions much better and to show enough context before the disassembly output so you can tell where things came from. Added the ability to get more than one address range from a SymbolContext class for the case where a block or function has discontiguous address ranges. llvm-svn: 130044
* Convert the rest of the test suite to use the lldbutil.get_description() ↵Johnny Chen2011-04-234-22/+15
| | | | | | utility function. llvm-svn: 130041
* Add a simple utility function get_description(lldb_obj, option=None) to ↵Johnny Chen2011-04-232-7/+26
| | | | | | | | lldbutil.py and use it from TestTargetAPI.py. llvm-svn: 130038
* Fix up how the ValueObjects manage their life cycle so that you can hand out ↵Jim Ingham2011-04-2225-210/+528
| | | | | | | | | a shared pointer to a ValueObject or any of its dependent ValueObjects, and the whole cluster will stay around as long as that shared pointer stays around. llvm-svn: 130035
* Add test cases for the SBTarget.GetDescription() API which takes an extra ↵Johnny Chen2011-04-221-0/+36
| | | | | | lldb::DescriptionLevel enum. llvm-svn: 130029
* We are only interested in logging the child's output to sys.stdout.Johnny Chen2011-04-221-1/+1
| | | | llvm-svn: 130017
* Fix comment.Johnny Chen2011-04-221-1/+1
| | | | llvm-svn: 130016
* Make test_connect_remote() more robust by waiting on the server ready messageJohnny Chen2011-04-222-9/+19
| | | | | | | | | before issuing the 'process connect ...' command. test_comand_regex(): assign the spawned child to self.child so it gets automatically shutdown during TestBase.tearDown(self). llvm-svn: 130015
* Reroute the blog link to the LLVM blog site.Greg Clayton2011-04-222-129/+1
| | | | llvm-svn: 130014
* Erase from a string instead of using substr when you don't really need to.Greg Clayton2011-04-221-1/+1
| | | | llvm-svn: 130013
* Fix a typo.Johnny Chen2011-04-221-1/+1
| | | | llvm-svn: 130011
* Remove old emulation test data files.Caroline Tice2011-04-22157-20326/+0
| | | | llvm-svn: 129993
* Modify to use the new test files.Caroline Tice2011-04-221-2/+2
| | | | llvm-svn: 129992
* Reformat the emulation test data files.Caroline Tice2011-04-22157-0/+17740
| | | | llvm-svn: 129991
* Change code for reading emulation data files to read the new fileCaroline Tice2011-04-229-141/+387
| | | | | | | format. (The newly formatted files will go in as a separate commit in a few minutes). llvm-svn: 129981
* Did some work on the "register read" command to only show the first registerGreg Clayton2011-04-2213-180/+486
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | set by default when dumping registers. If you want to see all of the register sets you can use the "--all" option: (lldb) register read --all If you want to just see some register sets, you can currently specify them by index: (lldb) register read --set 0 --set 2 We need to get shorter register set names soon so we can specify the register sets by name without having to type too much. I will make this change soon. You can also have any integer encoded registers resolve the address values back to any code or data from the object files using the "--lookup" option. Below is sample output when stopped in the libc function "puts" with some const strings in registers: Process 8973 stopped * thread #1: tid = 0x2c03, 0x00007fff828fa30f libSystem.B.dylib`puts + 1, stop reason = instruction step into frame #0: 0x00007fff828fa30f libSystem.B.dylib`puts + 1 (lldb) register read --lookup General Purpose Registers: rax = 0x0000000100000e98 "----------------------------------------------------------------------" rbx = 0x0000000000000000 rcx = 0x0000000000000001 rdx = 0x0000000000000000 rdi = 0x0000000100000e98 "----------------------------------------------------------------------" rsi = 0x0000000100800000 rbp = 0x00007fff5fbff710 rsp = 0x00007fff5fbff280 r8 = 0x0000000000000040 r9 = 0x0000000000000000 r10 = 0x0000000000000000 r11 = 0x0000000000000246 r12 = 0x0000000000000000 r13 = 0x0000000000000000 r14 = 0x0000000000000000 r15 = 0x0000000000000000 rip = 0x00007fff828fa30f libSystem.B.dylib`puts + 1 rflags = 0x0000000000000246 cs = 0x0000000000000027 fs = 0x0000000000000000 gs = 0x0000000000000000 As we can see, we see two constant strings and the PC (register "rip") is showing the code it resolves to. I fixed the register "--format" option to work as expected. Added a setting to disable skipping the function prologue when setting breakpoints as a target settings variable: (lldb) settings set target.skip-prologue false Updated the user settings controller boolean value handler funciton to be able to take the default value so it can correctly respond to the eVarSetOperationClear operation. Did some usability work on the OptionValue classes. Fixed the "image lookup" command to correctly respond to the "--verbose" option and display the detailed symbol context information when looking up line table entries and functions by name. This previously was only working for address lookups. llvm-svn: 129977
* Make the test case more robust by installing a teardown hook to kill the ↵Johnny Chen2011-04-221-5/+6
| | | | | | | | | | inferior rather than calling "process kill" explicitly at the end of the test. The test might not even reach the end because it could have failed prematurely. llvm-svn: 129963
* Conditionalize the self.expect("dis -f", ...) test scenario to check on ↵Johnny Chen2011-04-221-7/+9
| | | | | | | | Intel disassembly only when the test is currently running against the relevant architecture. llvm-svn: 129960
* Add a HideStdout() method to our TestBase class and call it from ↵Johnny Chen2011-04-214-13/+34
| | | | | | | | | | | | TestAbbreviations.py and TestAliases.py. Pass the keyword argument 'check=False' to: self.runCmd("script my.date()", check=False) since we want to restore sys.stdout no matter what the outcome of the runCmd is. llvm-svn: 129949
* Fixed a case where if a function, inlined function, or global with a mangledGreg Clayton2011-04-211-14/+42
| | | | | | | name had a DW_AT_name that was the same string as the DW_AT_MIPS_linkage_name, then it would get added twice to the DWARF index. llvm-svn: 129942
* Hopefully fix the last fallout of 'commands' to 'command' change.Johnny Chen2011-04-211-4/+4
| | | | llvm-svn: 129937
* Use self.TraceOn() API.Johnny Chen2011-04-213-4/+14
| | | | llvm-svn: 129936
* Use self.TraceOn() API to decide whether to print debug output.Johnny Chen2011-04-213-16/+11
| | | | llvm-svn: 129935
* More iteration on the new option value stuff. We now define an Greg Clayton2011-04-212-89/+108
| | | | | | | OptionValueCollection class that can be subclassed to provide access to internal settings that are stored as ObjectValue subclasses. llvm-svn: 129926
* Made the constructors public for all OptionValue classesGreg Clayton2011-04-212-113/+207
| | | | | | | | so we can instantiate them, and also moved the code that can get the specific subclass for a OptionValue into the OptionValue class. llvm-svn: 129920
* Added a blog page with a description and tutorial on using the new "command ↵Greg Clayton2011-04-212-0/+129
| | | | | | | | regex" command. llvm-svn: 129898
* Fixed some more 'commands' to 'command' change.Johnny Chen2011-04-213-5/+5
| | | | llvm-svn: 129897
* Replace 'commands' with 'command', and update to the latest prompt.Johnny Chen2011-04-211-3/+3
| | | | llvm-svn: 129895
* Use self.TraceOn() API.Johnny Chen2011-04-201-0/+10
| | | | llvm-svn: 129890
* Renamed the "commands" command to "command" as this is the way we were usingGreg Clayton2011-04-201-70/+185
| | | | | | | | | | | | | | it everywhere internally. Modified the "command regex" command to be able to specify all regular expressions on the command line. For example: (lldb) command regex f s/^$/finish/ 's/([0-9]+)/frame select %1/' Also improved the error reporting when an invalid 's/<regex>/<subst>/' argument is given. llvm-svn: 129889
* Use self.TraceOn() API.Johnny Chen2011-04-201-2/+6
| | | | llvm-svn: 129885
* Fix wrong comment.Johnny Chen2011-04-201-1/+1
| | | | llvm-svn: 129881
* Use self.TraceOn() API.Johnny Chen2011-04-202-2/+2
| | | | llvm-svn: 129880
* Add a simple test scenario for 'command regex' invocation and subsequent use.Johnny Chen2011-04-201-0/+42
| | | | llvm-svn: 129879
* Add a test scenario for 'source list -b' which shows the line table ↵Johnny Chen2011-04-201-1/+16
| | | | | | | | locations from the debug information which indicates valid places to set source level breakpoints. llvm-svn: 129871
* Remove ARMDissasembler.framework from project (it accidentally gotCaroline Tice2011-04-201-8/+0
| | | | | | included in a recent commit). llvm-svn: 129868
* Fixed an issue where breakpoint were being displayed when using the "source ↵Greg Clayton2011-04-202-1/+39
| | | | | | | | list" command when the file was implicit or found from a symbol. llvm-svn: 129867
* Added the ability for arrays and dictionaries to contain only specificGreg Clayton2011-04-201-22/+68
| | | | | | types of values. llvm-svn: 129863
* Fix typo (accidental second 'const' qualifier).Caroline Tice2011-04-201-1/+1
| | | | llvm-svn: 129859
OpenPOWER on IntegriCloud