d55c5b19487ef22383a32548f1143f1dfac2478f |
14-Oct-2013 |
Todd Fiala <tfiala@google.com> |
Add Android.mk support for building LLDB on Linux host. This change adds support for building LLDB with the following build command from the top level: make FORCE_BUILD_LLVM_COMPONENTS=true ANDROID_BUILD_LLDB=true lldb There are known issues with the google linux host gcc 4.6.2+ variant currently used to build host executables. A follow up change will apply a temporary work-around that will be used until either the compiler is fixed or a new compiler is used. Change-Id: I18451f73cbe2264074cd8fba6397680855352a93
ndroid.mk
rap_python.mk
|
4b93aee16f3a81aaf18114c88cc52482262035f3 |
30-Jul-2013 |
Michael Sartain <mikesart@valvesoftware.com> |
Add format specifiers to various format ids so we can print thread ids in decimal on Linux and FreeBSD. CC: emaste Differential Revision: http://llvm-reviews.chandlerc.com/D1234 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@187425 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
ca4c37b4874dfcbc2001852624644fa2a2c30f2c |
26-Jul-2013 |
Sean Callanan <scallanan@apple.com> |
Fixed several problems with watchpoint expressions. - First, the watchpoint size was being cast to the wrong type. This is primarily cosmetic, but annoying. - Second, the options for the watchpoint command were not being initialized correctly, which led to the watchpoint size sometimes having absurdly large values. This caused watchpoints to fail to be set in some cases. <rdar://problem/12658775> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@187169 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupWatchpoint.cpp
|
95eeb63432ac232f81cf9ee3301abddd7ce2f817 |
12-Jul-2013 |
Enrico Granata <egranata@apple.com> |
Added Repr() and Str() member functions to our PythonObject class to allow easy conversion to-string of every PythonObject git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@186205 91177308-0d34-0410-b5e6-96231b3b80d8
ythonDataObjects.cpp
|
b9d995d0863e1860c12c4ace0d5eb0ba832f9c99 |
09-Jul-2013 |
Enrico Granata <egranata@apple.com> |
Second attempt at getting the PyCallable changes in trunk Thanks to Daniel Malea for helping test this patch for Linux happiness! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@185965 91177308-0d34-0410-b5e6-96231b3b80d8
ommandReturnObject.cpp
criptInterpreterPython.cpp
|
26bc105b1882a78de609d46d148ad2b5c4d50656 |
03-Jul-2013 |
Daniel Malea <daniel.malea@intel.com> |
Revert commits that cause broken builds on GCC buildbots - build fails due to PyCallable template definition inside an extern "C" scope This commit reverts 185240, 184893 and 184608. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@185560 91177308-0d34-0410-b5e6-96231b3b80d8
ommandReturnObject.cpp
criptInterpreterPython.cpp
|
9c9a7bf57d081271c7e971decfe221561a920bcd |
26-Jun-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/14266411> The semi-unofficial way of returning a status from a Python command was to return a string (e.g. return "no such variable was found") that LLDB would pick as a clue of an error having happened This checkin changes that: - SBCommandReturnObject now exports a SetError() call, which can take an SBError or a plain C-string - script commands now drop any return value and expect the SBCommandReturnObject ("return object") to be filled in appropriately - if you do nothing, a success will be assumed If your commands were relying on returning a value and having LLDB pick that up as an error, please change your commands to SetError() through the return object or expect changes in behavior git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184893 91177308-0d34-0410-b5e6-96231b3b80d8
ommandReturnObject.cpp
criptInterpreterPython.cpp
|
7e20fea4aff79b345ab504f88844796ccd2901cb |
24-Jun-2013 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Fix some more mismatched integer types causing compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184737 91177308-0d34-0410-b5e6-96231b3b80d8
ptions.cpp
|
001cd53e9d8d9e481ada536924ea7563b84ee9cf |
21-Jun-2013 |
Enrico Granata <egranata@apple.com> |
In thread and frame format strings, it is now allowed to use Python functions to generate part or all of the output text Specifically, the ${target ${process ${thread and ${frame specifiers have been extended to allow a subkeyword .script:<fctName> (e.g. ${frame.script:FooFunction}) The functions are prototyped as def FooFunction(Object,unused) where object is of the respective SB-type (SBTarget for target.script, ... and so on) This has not been implemented for ${var because it would be akin to a Python summary which is already well-defined in LLDB git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184500 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
3e11c7ec050648ba865f1d451f8cb46fd39072a8 |
19-Jun-2013 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Sort out a number of mismatched integer types in order to cut down the number of compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184333 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ptionValueFileSpecLIst.cpp
ptionValuePathMappings.cpp
ptions.cpp
|
aba2527533d410640b435ba365c3e991c6629620 |
19-Jun-2013 |
Enrico Granata <egranata@apple.com> |
Improvements to "command script import" to better support reloading in Xcode Xcode spawns a new LLDB SBDebugger for each debug session, and this was causing the reloading of python modules to fail across debug sessions (long story short: the module would not be loaded in the current instance of the ScriptInterpreter, but would still be present in sys.modules, hence the import call would just make a copy of it and not run it again Greg's new decorator uncovered the issue since it relies on actually loading the module's code rather than using __lldb_init_module as the active entity) This patch introduces the notion of a local vs. global import and crafts an appropriate command to allow reloading to work across debug sessions git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184279 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
be2f9090cf7d64a0f021cbc4036f4172baba1cd2 |
18-Jun-2013 |
Jim Ingham <jingham@apple.com> |
We were getting an assert because somebody was making a watchpoint that was neither read nor write. Tighten up the checking so this isn't possible. <rdar://problem/14111167> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184245 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupWatchpoint.cpp
|
89f58190ec56ff6f2ae8921cfd0dd89936b3db40 |
18-Jun-2013 |
Adrian Prantl <aprantl@apple.com> |
Fix a missing pointer deref that was uncovered by one of the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184216 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
c86ae088be2439a2eed608add5603b7a94db1032 |
18-Jun-2013 |
Enrico Granata <egranata@apple.com> |
This patch fixes the issue where our command-line tab completer would sometimes replicate commands e.g. (lldb) pl<TAB> Available completions: platform plugin platform plugin Thanks to Matthew Sorrels for doing work and testing on this issue git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184212 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c3580681c3876a323ea1b02c3dc9dde390cabfdf |
18-Jun-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/13270271> Only add the — (double dash) separator to a command syntax if it has any options to be separated from arguments Also remove the unused Translate() method from CommandObject git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184163 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
81471a294b082420c0327aeed6be4f7cb107c3f3 |
18-Jun-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/13926101> Allow “command script import” to work with folder names that have a ‘ (tick) in them Kudos to StackOverflow (question 1494399) for the replace_all code! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184158 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
5444368741d36ff6220e47e4b666eb851e6c6633 |
18-Jun-2013 |
Michael Sartain <mikesart@valvesoftware.com> |
Add new files to CMakeLists.txt to fix cmake build error. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184143 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
b1fb72761226817e7f687eca21cbe9c0a3ec4cf6 |
18-Jun-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/14134716> This is a rewrite of the command history facility of LLDB It takes the history management out of the CommandInterpreter into its own CommandHistory class It reimplements the command history command to allow more combinations of options to work correctly (e.g. com hist -c 1 -s 5) It adds a new --wipe (-w) option to command history to allow clearing the history on demand It extends the lldbtest runCmd: and expect: methods to allow adding commands to history if need be It adds a test case for the reimplemented facility git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184140 91177308-0d34-0410-b5e6-96231b3b80d8
ommandHistory.cpp
ommandInterpreter.cpp
|
035ef3d0a0136f2b9028b4695a681e58ba899651 |
12-Jun-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11914077> If you type help command <word> <word> <word> <missingSubCommand> (e.g. help script import or help type summary fake), you will get help on the deepest matched command word (i.e. script or type summary in the examples) Also, reworked the logic for commands to produce their help to make it more object-oriented git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183822 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
c8b6859869e128bad1607fb12b20b43f4a09a2bd |
12-Jun-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/13299214> Make the error message here more interesting for the user git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183818 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
8b9e96924885f49e6a74a1432d4d71a73c080866 |
11-Jun-2013 |
Enrico Granata <egranata@apple.com> |
Making our Python decrefs NULL-safe git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183774 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
6fefc3a3915bcaf899b9179c43b1b7b2f693b3ad |
11-Jun-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12876503> Adding a new setting interpreter.stop-command-source-on-error that dictates a default behavior for whether command source should stop upon hitting an error You can still override the setting for each individual invocation with the usual -e setting git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183719 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
884288bcb6824452a3c64eb772c0976501acc47a |
03-Jun-2013 |
Matt Kopec <Matt.Kopec@intel.com> |
Fix various build warnings. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183140 91177308-0d34-0410-b5e6-96231b3b80d8
ythonDataObjects.cpp
|
66068824402d94de2abe81c7e4472a4754572489 |
31-May-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11109316> command script import now does reloads - for real If you invoke command script import foo and it detects that foo has already been imported, it will - invoke reload(foo) to reload the module in Python - re-invoke foo.__lldb_init_module This second step is necessary to ensure that LLDB does not keep cached copies of any formatter, command, ... that the module is providing Usual caveats with Python imports persist. Among these: - if you have objects lurking around, reloading the module won't magically update them to reflect changes - if module A imports module B, reloading A won't reload B These are Python-specific issues independent of LLDB that would require more extensive design work The --allow-reload (-r) option is maintained for compatibility with existing scripts, but is clearly documented as redundant - reloading is always enabled whether you use it or not git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182977 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
9565e9dde3e33483f127815b10d6e9d5b8f46049 |
23-May-2013 |
Greg Clayton <gclayton@apple.com> |
Fixed a file leak introduced with my last checkin. Also be sure to include <stdio.h> just in case. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182537 91177308-0d34-0410-b5e6-96231b3b80d8
ythonDataObjects.cpp
|
e15e58facd4814a2be1cc1aa385e9f9125b92993 |
23-May-2013 |
Greg Clayton <gclayton@apple.com> |
Added a new "lldb" log channel named "os" for the OperatingSystem plug-ins to use. Added logging for the OS plug-in python objects in OperatingSystemPython so we can see the python dictionary returned from the plug-in when logging is enabled. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182530 91177308-0d34-0410-b5e6-96231b3b80d8
ythonDataObjects.cpp
|
589d3618411e8a757992482e4d0cb3cb79480f2e |
17-May-2013 |
Jim Ingham <jingham@apple.com> |
Apropos should search user commands as well as built-in commands. rdar://problem/13916722 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182068 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
7de74f933e207fcb5d7fba72f7f1e4c99f97b0a9 |
16-May-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11158023> Make type summary add and breakpoint command add show an helpful prototype + argument reference when manually typing Python code for these elements git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181968 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
2f6a4ed0dd1b2046a5193a1432af7462e32c620d |
15-May-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13892319> The command "po" by itself yields odd errors. I fixed the alias. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181856 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
0e191607adcb0ea8ebd06c278be648a7f5c0097f |
10-May-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13854277> <rdar://problem/13594769> Main changes in this patch include: - cleanup plug-in interface and use ConstStrings for plug-in names - Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp - Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging The plug-in interface changes: Modified the lldb_private::PluginInterface class that all plug-ins inherit from: Changed: virtual const char * GetPluginName() = 0; To: virtual ConstString GetPluginName() = 0; Removed: virtual const char * GetShortPluginName() = 0; - Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names. - Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181631 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupPlatform.cpp
|
edeed2de0703606ef7d7a98c34e4059e505d0923 |
08-May-2013 |
Enrico Granata <egranata@apple.com> |
Test case added for importing packages git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181472 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
6b2d9e1a76b55e958a7c606d1f9b51d966d8fa30 |
08-May-2013 |
Enrico Granata <egranata@apple.com> |
Improvements to the package importing feature - test case will follow git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181461 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
42b336cd509cad89be08f78775d3b1c8c7656a1b |
04-May-2013 |
Jason Molenda <jmolenda@apple.com> |
Remove the UUID::GetAsCString() method which required a buffer to save the UUID string in; added UUID::GetAsString() which returns the uuid string in a std::string. Updated callers to use the new method. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181078 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueUUID.cpp
|
7d18ec6bd5dbac01b9279c55e47b4a22e2679b87 |
03-May-2013 |
Ashok Thirumurthi <ashok.thirumurthi@intel.com> |
Fixed 'command script import' by eliminating the shadowing of basename. Reviewed by: Daniel Malea git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181027 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
00a8278f15e9cccd32834c1db0adb384412e1449 |
03-May-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11558812> Allow command script import to load packages. e.g.: egranata$ ./lldb (lldb) command script import lldb.macosx.crashlog "crashlog" and "save_crashlog" command installed, use the "--help" option for detailed help "malloc_info", "ptr_refs", "cstr_refs", and "objc_refs" commands have been installed, use the "--help" options on these commands for detailed help. The "unwind-diagnose" command has been installed, type "help unwind-diagnose" for detailed help. (lldb) ./lldb (lldb) command script import theFoo I am happy (lldb) fbc àèìòù (lldb) egranata$ ls theFoo/ __init__.py theBar.py egranata$ cat theFoo/__init__.py import lldb import theBar def __lldb_init_module(debugger, internal_dict): print "I am happy" debugger.HandleCommand("command script add -f theFoo.theBar.theCommand fbc") return None egranata$ cat theFoo/theBar.py #encoding=utf-8 def theCommand(debugger, command, result, internal_dict): result.PutCString(u"àèìòù") return None git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180975 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
a153f63ec971339431c945499bd540515270267a |
03-May-2013 |
Jim Ingham <jingham@apple.com> |
If HandleCommands is called with add_to_history set to false, turn on the m_command_source_depth so that when we forget the value for regex & alias commands it still stays off. <rdar://problem/13795202> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180971 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
761afb822b18c46b2ad84be03f372e90ac1e6143 |
02-May-2013 |
Jim Ingham <jingham@apple.com> |
Recommitting r180831 with trivial fix - remember to return errors if you compute. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180898 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
411ab47806a478d932926ef7a309ea37edf1f7e7 |
01-May-2013 |
Daniel Malea <daniel.malea@intel.com> |
Reverting 180831 as it crashes TestDefaultConstructorForAPIObjects.py git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180868 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
4ca37158ce6eb4af8af54f066f14ce95001f0c19 |
01-May-2013 |
Jason Molenda <jmolenda@apple.com> |
Change CommandReturnObject::AppendMessage to print an empty line if AppendMessage("") is called. This idiom is used in a handful of places right now (e.g. to put space between different threads in 'bt all') but the empty newline is being omitted instead of emitted. <rdar://problem/13753830> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180841 91177308-0d34-0410-b5e6-96231b3b80d8
ommandReturnObject.cpp
|
b4e08abf4972befc8412bc83a0205fbdc547290e |
01-May-2013 |
Jim Ingham <jingham@apple.com> |
Added an option to "process detach" to keep the process stopped, if the process plugin (or in the case of ProcessGDBRemote the stub we are talking to) know how to do that. rdar://problem/13680832 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180831 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
2a91bebd40287943def1858c4924db471126ea52 |
29-Apr-2013 |
Enrico Granata <egranata@apple.com> |
Avoiding a potentially memory allocating code path in the Python InputReader's CTRL+C handling code path - this can potentially cause a deadlock while interrupting a user-made Python command git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180726 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
97a19b21dacd9063bb5475812df7781777262198 |
29-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Cleanup logging to use the new "std::string FileSpec::GetPath()" function. Also added a similar function for modules: std::string Module::GetSpecificationDescription () const; This returns the module as "/usr/lib/libfoo.dylib" for normal files (calls "std::string FileSpec::GetPath()" on m_file) but it also might include the object name in case the module is for a .o file in a BSD archive ("/usr/lib/libfoo.a(bar.o)"). Cleaned up necessary logging code to use it. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180717 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueFileSpec.cpp
|
11ac3162a6b54579d28cfe3968f2a3536a951c5b |
23-Apr-2013 |
Matt Kopec <Matt.Kopec@intel.com> |
Look for an inexact match in just the commands before searching the alias commands as well. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180117 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c582bbf6dbdded9e6e7e2b63ff7312728e6c8cea |
23-Apr-2013 |
Daniel Malea <daniel.malea@intel.com> |
Fix linux argument completion with for "--" options (llvm.org/bugs/pr14425) Patch by Yacine Belkadi! When __GLIBC__ is defined, optind gets initialized to 0. So for the first parsed option, parse_start is 0, too. If this option has no argument (Like "--continue" of "process attach"), then the position stored is 0, instead of 1. This prevents the completion later on in Options::HandleOptionCompletion() because the opt_pos doesn't match the cursor_index. Fix that by getting the option's position from the value of optind, as it's done for the other types of options. Re-enable test_process_attach_dash_dash_con() on Linux. No regressions detected on Mac OS X (in TestCompletion.py) git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180114 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
d387b462eecb908af265ecc7006781b4532073ad |
19-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Fixed some linux buildbot warnings. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179892 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueProperties.cpp
ptions.cpp
|
102b2c2681c9a830afe25bfea35557421905e42c |
19-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179805 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ptions.cpp
criptInterpreter.cpp
criptInterpreterPython.cpp
|
81a96aa6242f7b559770f5dc62316253cb8cb0d4 |
18-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Since we use C++11, we should switch over to using std::unique_ptr when C++11 is being used. To do this, we follow what we have done for shared pointers and we define a STD_UNIQUE_PTR macro that can be used and it will "do the right thing". Due to some API differences in std::unique_ptr and due to the fact that we need to be able to compile without C++11, we can't use move semantics so some code needed to change so that it can compile with either C++. Anyone wanting to use a unique_ptr or auto_ptr should now use the "STD_UNIQUE_PTR(TYPE)" macro. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179779 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ptions.cpp
criptInterpreter.cpp
criptInterpreterPython.cpp
|
71c5d60c65c7e73a55adfc220501fe7085fd0eb7 |
17-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
Removed the "expr" alias for "expression," which is entirely unnecessary and confuses the command interpreter when the user types "exp". git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179691 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
3f2f741bb533b78e2fac5332c4698338ea2fd3ac |
04-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13457391> LLDB now can use a single dash for all long options for all commands form the command line and from the command interpreter. This involved just switching all calls from getopt_long() to getopt_long_only(). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178789 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandObject.cpp
ptions.cpp
|
00af72e395d138f459192b7f5450fa4c7854f135 |
03-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13384801> Make lldb_private::RegularExpression thread safe everywhere. This was done by removing the m_matches array from the lldb_private::RegularExpression class and putting it into the new lldb_private::RegularExpression::Match class. When executing a regular expression you now have the option to create a lldb_private::RegularExpression::Match object and pass a pointer in if you want to get parenthesized matching. If you don't want any matching, you pass in NULL. The lldb_private::RegularExpression::Match object is initialized with the number of matches you desire. Any matching strings are now extracted from the lldb_private::RegularExpression::Match objects. This makes the regular expression objects thread safe and as a result many more regex objects were turned into static objects that end up using a local lldb_private::RegularExpression::Match object when executing. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178702 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandObjectRegexCommand.cpp
|
296b06d325413723f5aac5988eed977b278a7807 |
03-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13506727> Symbol table function names should support lookups like symbols with debug info. To fix this I: - Gutted the way FindFunctions is used, there used to be way too much smarts only in the DWARF plug-in - Made it more efficient by chopping the name up once and using simpler queries so that SymbolFile and Symtab plug-ins don't need to do as much - Filter the results at a higher level - Make the lldb_private::Symtab able to chop up C++ mangled names and make as much sense out of them as possible and also be able to search by basename, fullname, method name, and selector name. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178608 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectRegexCommand.cpp
|
1d4812cbb71af9e05250a4ffbcda4236275c82b4 |
03-Apr-2013 |
Jim Ingham <jingham@apple.com> |
Allow partial matching for alias commands as well as regular commands. <rdar://problem/13552724> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178597 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
d47cda9928716f4d050fb3c6c3469d59aa1325fd |
02-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
Added "rb" and "rbr" aliases to fix regressions when we changed "rb" to "rbreak". <rdar://problem/13552724> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178573 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
f7c4bfc185add2a56644a4261d1dccea7cff3212 |
30-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13131838> Platform select documents a -S option but doesn't accept it, now it does. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178384 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupPlatform.cpp
|
f3c65b85caf3e097654f6b59c9a709507adfc254 |
29-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12022060> Enable tab completion for regular expression commands. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178348 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObjectRegexCommand.cpp
|
952e9dc874944fcdbbb224f3ec4fc2c859376f64 |
28-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13521159> LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down. All logging channels now make one and only one instance that is kept in a global pointer which is never freed. This guarantees that logging can correctly continue as the process tears itself down. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178191 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreterPython.cpp
|
1414aba4ae30f89c2513bdbbb56c281cec014902 |
27-Mar-2013 |
Enrico Granata <egranata@apple.com> |
Implementing the notion of externally-acquirable ScriptInterpreter lock With this notion, if parties outside the ScriptInterpreter itself need to acquire a lock on script APIs, they can do so by a pattern like this: { auto lock = interpeter->AcquireInterpreterLock(); // do whatever you need to do... } // lock will automatically be released here This might be useful for classes that use the Python convenience objects (e.g. PythonDictionary) to ensure they keep the underlying interpreter in a safe and controlled condition while they call through the C API functions Of course, the ScriptInterpreter still manages its internal locking correctly when necessary :-) git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178189 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
c3f5cd817ad045cab3a79f37ab5e65f8a659b7ab |
26-Mar-2013 |
Enrico Granata <egranata@apple.com> |
Our commands that end up displaying a ValueObject as part of their workflow use OptionGroupValueObjectDisplay as their currency for deciding the final representation ValueObjects themselves use DumpValueObjectOptions as the currency for the same purpose The code to convert between these two units was replicated (to varying degrees of correctness) in several spots in the code This checkin provides one and only one (and hopefully correct :-) entry point for this conversion git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178044 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupValueObjectDisplay.cpp
|
cba09f60618744e2155bc97c9049fa9c797698ad |
19-Mar-2013 |
Enrico Granata <egranata@apple.com> |
This checkin removes the last Cocoa formatters that were implemented in Python and reimplements them in C++. The Python Cocoa formatters are not shipped as part of LLDB anymore, but still exist in the source repository for user reference. Python formatters still exist for STL classes and users can still define their own Python formatters git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177366 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
056d0c114720eb98f83c021bd0f0c7fe8346303f |
15-Mar-2013 |
Jim Ingham <jingham@apple.com> |
The regular expression command object was resetting the execution context of the resolved command, which it should not do. It should adopt whatever context the regular expression command was called with. This was causing regular expression commands run inside breakpoint commands to adopt the currently selected context, not the one coming from the breakpoint that we hit. <rdar://problem/13411771> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177195 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectRegexCommand.cpp
|
eff83203b6895f472f208f881d2e30b2e029a67a |
15-Mar-2013 |
Sean Callanan <scallanan@apple.com> |
Rolled back r176719 because settings with file names were broken. <rdar://problem/13422580> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177139 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueFileSpec.cpp
|
b1f44b340f31ec747a7b6dcd299b8a6151470817 |
13-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13404189> Made the "--reverse" option to "source list" also be able to use the "--count". This helps us implement support for regexp source list command: (lldb) l -10 Which gets turned into: (lldb) source list --reverse --count 10 Also simplified the code that is used to track showing more source from the last file and line. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176961 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
5243ff89c0b02fb2a6dc2df75ae716ccf656b363 |
08-Mar-2013 |
Sean Callanan <scallanan@apple.com> |
OptionValueFileSpec shouldn't be doing argument parsing on the file name it gets. That confuses it if there are spaces in the file name. <rdar://problem/13380392> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176719 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueFileSpec.cpp
|
8014368ef3f0d62c50e15856680b51cfaab860ea |
06-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
Now that "settings set" will strip leading and trailing spaces, we need a way to be able to specify string values that contain spaces. So now settings setting <property> <value>" can have a <value> that is quoted: settings set prompt "(lldb2) " git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176545 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueString.cpp
|
b4b4081ade73ef2d35474bee5d249ed8507874b5 |
06-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13184855> Spaces in "settings set" value strings no longer cause setting failures. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176532 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
7d4083837c5a258375fdc185d464b4ed15759a4b |
02-Mar-2013 |
Jim Ingham <jingham@apple.com> |
Convert from the C-based LLVM Disassembler shim to the full MC Disassembler API's. Calculate "can branch" using the MC API's rather than our hand-rolled regex'es. As extra credit, allow setting the disassembly flavor for x86 based architectures to intel or att. <rdar://problem/11319574> <rdar://problem/9329275> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176392 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
a7cb6633a9fbea316ae3c4c442df0bdf81fab534 |
23-Feb-2013 |
Jim Ingham <jingham@apple.com> |
Correct the logic in DumpCommandHistory when the end index is UINT32_MAX. <rdar://problem/13270229> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175927 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
e9a5a50885c68f0bbd5f87c610be0aea639a8d9e |
22-Feb-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/13265017> The notion of Crossref command has long been forgotten, and there is nothing using CommandObjectCrossref in the current LLDB codebase However, this was causing a conflict with process plugins and command aliases ending up in an infinite loop under situations such as: (lldb) command alias monitor process plugin packet monitor (lldb) process att -n Calendar Process 28709 stopped Executable module set to "/Applications/Calendar.app/Contents/MacOS/Calendar". Architecture set to: x86_64-apple-macosx. (lldb) command alias monitor process plugin packet monitor This fixes the loop (and consequent crash) by disposing of Crossref commands and related code git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175831 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
fe21d4f351f560921e615a6677afe1c057aa7f28 |
22-Feb-2013 |
Matt Kopec <Matt.Kopec@intel.com> |
Fix clang warnings related to python macro redefinition and printf format specifiers. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175829 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupFormat.cpp
|
aebeefd3adb11cf535b9a7b6ad4e9c39e005a7b5 |
21-Feb-2013 |
Daniel Malea <daniel.malea@intel.com> |
Adding CMake build system to LLDB. Some known issues remain: - generate-vers.pl has to be called by cmake to generate the version number - parallel builds not yet supported; dependency on clang must be explicitly specified Tested on Linux. - Building on Mac will require code-signing logic to be implemented. - Building on Windows will require OS-detection logic and some selective directory inclusion Thanks to Carlo Kok (who originally prepared these CMakefiles for Windows) and Ben Langmuir who ported them to Linux! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175795 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
d04a76bcfeb88278fa7c96403fa828ca0288bb32 |
21-Feb-2013 |
Jason Molenda <jmolenda@apple.com> |
*ahem* Enrico. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175691 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
|
80c9a882b7ba4e4f671f199a262c72a1df842308 |
19-Feb-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/13147878> Be more user-friendly about not having scripting enabled: a) if Python was built-out then tell people about it explicitly b) if we are told to use none as a scripting language, then tell people about that too This should limit the cases where the semi-cryptic error message "there is no embedded script interpreter in this mode." actually shows git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175570 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
|
c06adf1bd6b9b051f74804047c0627a49fac2bf6 |
12-Feb-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13178743> Added a new "env" regular expression alias. If "env" is typed on its own "settings show target.env-vars" will be run. Otherwise it can be used to set and environment variable: "env FOO=BAR". git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174991 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c98abf51778fe9b4a992ab0111d5912b2b3420e8 |
12-Feb-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13184389> _regexp-list needs to treat "list -" as "source list -r" git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174987 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
f2bf27413cdcbd730aa2ed05ec5cdb6222b130e9 |
08-Feb-2013 |
Greg Clayton <gclayton@apple.com> |
Added the ability to specify a breakpoint using the GDB '*ADDRESS' format: (lldb) b *0x1234 You can still of course just specify an address: (lldb) b 0x1234 Also now we accept the '&' before function names to indicate to not to skip the function prologue like GDB supports. To see how this works: (lldb) settings set interpreter.expand-regex-aliases 1 (lldb) b &main breakpoint set --name 'main' --skip-prologue=0 Breakpoint 1: where = a.out`main at main.c:20, address = 0x0000000100000b60 (lldb) b main breakpoint set --name 'main' Breakpoint 2: where = a.out`main + 54 at main.c:21, address = 0x0000000100000b96 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174695 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
8f805c29a68c326788278e21308f1a700dc58635 |
02-Feb-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13050227> Added a regular expression command called "_regexp-list" which mimics the GDB "line" command in the following forms: LINENUM, to list around that line in current file, FILE:LINENUM, to list around that line in that file, FUNCTION, to list around beginning of that function, *ADDRESS, to list around the line containing that address. ADDRESS, same as above, but don't require a '*' as long as ADDRESS is hex git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174233 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
f892c42725ed36c97e8ce10e758170cf6f1aff83 |
30-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/9141269> Cleaned up the objective C name parsing code to use a class. Now breakpoints that are set by name that are objective C methods without the leading '+' or '-' will resolve. We do this by expanding all the objective C names for a given string. For example: (lldb) b [MyString cStringUsingEncoding:] Will set a breakpoint with multiple possible names: -[MyString cStringUsingEncoding:] +[MyString cStringUsingEncoding:] Also if you have a category, it will strip the category and set a breakpoint in all variants: (lldb) [MyString(my_category) cStringUsingEncoding:] Will resolve to the following names: -[MyString(my_category) cStringUsingEncoding:] +[MyString(my_category) cStringUsingEncoding:] -[MyString cStringUsingEncoding:] +[MyString cStringUsingEncoding:] Likewise when we have: (lldb) b -[MyString(my_category) cStringUsingEncoding:] It will resolve to two names: -[MyString(my_category) cStringUsingEncoding:] -[MyString cStringUsingEncoding:] git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173858 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
16481ab10867e827dea07c3067cb100adb2a3e48 |
29-Jan-2013 |
Enrico Granata <egranata@apple.com> |
Since an address (0x12346) is an expression, be brief. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173757 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
4968ad817597891cc02c195d4b3e7c3cde1fc391 |
29-Jan-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12552374> Replacing the address argument type with address-expression in cases where StringToAddress() is used, and hence an expression can be passed where previously only a numeric address was allowed This makes the documentation more clear and helps users discover that they can truly pass in an expression in these situations. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173753 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
f509c5ec066599a3399fced39ea36996184939e8 |
29-Jan-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12978143> Data formatters now cache themselves. This commit provides a new formatter cache mechanism. Upon resolving a formatter (summary or synthetic), LLDB remembers the resolution for later faster retrieval. Also moved the data formatters subsystem from the core to its own group and folder for easier management, and done some code reorganization. The ObjC runtime v1 now returns a class name if asked for the dynamic type of an object. This is required for formatters caching to work with the v1 runtime. Lastly, this commit disposes of the old hack where ValueObjects had to remember whether they were queried for formatters with their static or dynamic type. Now the ValueObjectDynamicValue class works well enough that we can use its dynamic value setting for the same purpose. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173728 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandObjectScript.cpp
ptionGroupVariable.cpp
ptionValueArch.cpp
ptionValueDictionary.cpp
ptionValueFileSpec.cpp
ptionValueFormat.cpp
|
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
rgs.cpp
ommandInterpreter.cpp
ommandObject.cpp
ommandReturnObject.cpp
ythonDataObjects.cpp
criptInterpreterPython.cpp
|
4535891c699c40710e59d8ea966c4ad3ab19c077 |
21-Jan-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12437929> Providing a special mode of operator for "memory read -f c-str" which actually works in most common cases Where the old behavior would provide: (lldb) mem read --format s `foo` 0x100000f5d: NULL Now we do: (lldb) mem read --format s `foo` 0x100000f5d: "hello world" You can also specify a count and that many strings will be showed starting at the initial address: (lldb) mem read -c 2 -f c-str `foo` 0x100000f1d: "hello world" 0x100000f29: "short" git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173076 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupFormat.cpp
|
52ebc0aab1fdecb634801deceeddd71a14c2148c |
19-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13010007> Added the ability for OS plug-ins to lazily populate the thread this. The python OS plug-in classes can now implement the following method: class OperatingSystemPlugin: def create_thread(self, tid, context): # Return a dictionary for a new thread to create it on demand This will add a new thread to the thread list if it doesn't already exist. The example code in lldb/examples/python/operating_system.py has been updated to show how this call us used. Cleaned up the code in PythonDataObjects.cpp/h: - renamed all classes that started with PythonData* to be Python*. - renamed PythonArray to PythonList. Cleaned up the code to use inheritance where - Centralized the code that does ref counting in the PythonObject class to a single function. - Made the "bool PythonObject::Reset(PyObject *)" function be virtual so each subclass can correctly check to ensure a PyObject is of the right type before adopting the object. - Cleaned up all APIs and added new constructors for the Python* classes to they can all construct form: - PyObject * - const PythonObject & - const lldb::ScriptInterpreterObjectSP & Cleaned up code in ScriptInterpreterPython: - Made calling python functions safer by templatizing the production of value formats. Python specifies the value formats based on built in C types (long, long long, etc), and code often uses typedefs for uint32_t, uint64_t, etc when passing arguments down to python. We will now always produce correct value formats as the templatized code will "do the right thing" all the time. - Fixed issues with the ScriptInterpreterPython::Locker where entering the session and leaving the session had a bunch of issues that could cause the "lldb" module globals lldb.debugger, lldb.target, lldb.process, lldb.thread, and lldb.frame to not be initialized. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172873 91177308-0d34-0410-b5e6-96231b3b80d8
ythonDataObjects.cpp
criptInterpreterPython.cpp
|
dcb36c76090fdbf52f020bdd3fada62e0cffcc8d |
17-Jan-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12786725> If there is any alive process being debugged, the user is asked for confirmation before quitting LLDB This should prevent situations where the user mistakenly types "q" and LLDB slaughters their process without any mercy whatsoever Since it can quickly get tedious, there is a new setting on the command interpreter to disable this and replicate the previous behavior git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172757 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c4f42014c7ae1a704bffb19d917f92d7e3a18052 |
17-Jan-2013 |
Enrico Granata <egranata@apple.com> |
Converting lambdas to plain old static function pointers git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172755 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupVariable.cpp
|
ec1e823a9eb7ce4205a254210f633aa894fd612a |
16-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
Remove std::string input arguments and replace with "const char *". git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172647 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
b794020ffbd6473c59a6e98be044df50abf7fc30 |
15-Jan-2013 |
Jim Ingham <jingham@apple.com> |
Separated the "expr --unwind-on-error" behavior into two parts, actual errors (i.e. crashes) which continue to be controlled by the --unwind-on-error flag, and --ignore-breakpoint which separately controls behavior when a called function hits a breakpoint. For breakpoints, we don't unwind, we either stop, or ignore the breakpoint, which makes more sense. Also make both these behaviors globally settable through "settings set". Also handle the case where a breakpoint command calls code that ends up re-hitting the breakpoint. We were recursing and crashing. Now we just stop without calling the second command. <rdar://problem/12986644> <rdar://problem/9119325> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172503 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
aad2b0f2e5da0ecbf22ab7fead4c06671f64c6c5 |
11-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12990038> Fixed an issue where the platform auto select code was changing the architecture and causing the wrong architecture to be assigned to the target. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172251 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupPlatform.cpp
|
ea0bb4d45c14447a2fe9be9f4bd8e79a84513537 |
09-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
Expanded the flags that can be set for a command object in lldb_private::CommandObject. This list of available flags are: enum { //---------------------------------------------------------------------- // eFlagRequiresTarget // // Ensures a valid target is contained in m_exe_ctx prior to executing // the command. If a target doesn't exist or is invalid, the command // will fail and CommandObject::GetInvalidTargetDescription() will be // returned as the error. CommandObject subclasses can override the // virtual function for GetInvalidTargetDescription() to provide custom // strings when needed. //---------------------------------------------------------------------- eFlagRequiresTarget = (1u << 0), //---------------------------------------------------------------------- // eFlagRequiresProcess // // Ensures a valid process is contained in m_exe_ctx prior to executing // the command. If a process doesn't exist or is invalid, the command // will fail and CommandObject::GetInvalidProcessDescription() will be // returned as the error. CommandObject subclasses can override the // virtual function for GetInvalidProcessDescription() to provide custom // strings when needed. //---------------------------------------------------------------------- eFlagRequiresProcess = (1u << 1), //---------------------------------------------------------------------- // eFlagRequiresThread // // Ensures a valid thread is contained in m_exe_ctx prior to executing // the command. If a thread doesn't exist or is invalid, the command // will fail and CommandObject::GetInvalidThreadDescription() will be // returned as the error. CommandObject subclasses can override the // virtual function for GetInvalidThreadDescription() to provide custom // strings when needed. //---------------------------------------------------------------------- eFlagRequiresThread = (1u << 2), //---------------------------------------------------------------------- // eFlagRequiresFrame // // Ensures a valid frame is contained in m_exe_ctx prior to executing // the command. If a frame doesn't exist or is invalid, the command // will fail and CommandObject::GetInvalidFrameDescription() will be // returned as the error. CommandObject subclasses can override the // virtual function for GetInvalidFrameDescription() to provide custom // strings when needed. //---------------------------------------------------------------------- eFlagRequiresFrame = (1u << 3), //---------------------------------------------------------------------- // eFlagRequiresRegContext // // Ensures a valid register context (from the selected frame if there // is a frame in m_exe_ctx, or from the selected thread from m_exe_ctx) // is availble from m_exe_ctx prior to executing the command. If a // target doesn't exist or is invalid, the command will fail and // CommandObject::GetInvalidRegContextDescription() will be returned as // the error. CommandObject subclasses can override the virtual function // for GetInvalidRegContextDescription() to provide custom strings when // needed. //---------------------------------------------------------------------- eFlagRequiresRegContext = (1u << 4), //---------------------------------------------------------------------- // eFlagTryTargetAPILock // // Attempts to acquire the target lock if a target is selected in the // command interpreter. If the command object fails to acquire the API // lock, the command will fail with an appropriate error message. //---------------------------------------------------------------------- eFlagTryTargetAPILock = (1u << 5), //---------------------------------------------------------------------- // eFlagProcessMustBeLaunched // // Verifies that there is a launched process in m_exe_ctx, if there // isn't, the command will fail with an appropriate error message. //---------------------------------------------------------------------- eFlagProcessMustBeLaunched = (1u << 6), //---------------------------------------------------------------------- // eFlagProcessMustBePaused // // Verifies that there is a paused process in m_exe_ctx, if there // isn't, the command will fail with an appropriate error message. //---------------------------------------------------------------------- eFlagProcessMustBePaused = (1u << 7) }; Now each command object contains a "ExecutionContext m_exe_ctx;" member variable that gets initialized prior to running the command. The validity of the target objects in m_exe_ctx are checked to ensure that any target/process/thread/frame/reg context that are required are valid prior to executing the command. Each command object also contains a Mutex::Locker m_api_locker which gets used if eFlagTryTargetAPILock is set. This centralizes a lot of checking code that was previously and inconsistently implemented across many commands. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@171990 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
0d5d570314a4a37f9c2f45b8b8d7099d6bd85538 |
08-Jan-2013 |
Enrico Granata <egranata@apple.com> |
Make sure that the GenerateFunction call can support arbitrary levels of indentation for user code git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@171810 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
559bb5cacf6777cf1ad8ee32256585d049123332 |
20-Dec-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12446222> Implement the ability for Python commands to be interrupted by pressing CTRL+C Also add a new Mutex subclass that attempts to be helpful for debugging by logging actions performed on it FYI of all interested - there is a separate deadlocking issue related to how LLDB dispatches CTRL+C that might cause LLDB to deadlock upon pressing CTRL+C while in a Python command. This is not a regression, and was just previously masked by us not even trying to bail out of Python commands, so that it would not be clear from a user perspective whether we were deadlocked or stuck in an inconsistent state within the Python interpreter. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170612 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
bb04be12f8762500c1c308b0d1b93fe8f69c667f |
15-Dec-2012 |
Jim Ingham <jingham@apple.com> |
Remove the “len” defaulted parameter from CommandReturnObject::AppendMessage, AppendWarning and AppendError. Nobody was using them, and it meant if you accidentally used the AppendWarning when you meant AppendWarningWithFormat with an integer in the format string, it would compile and then return your string plus some unknown amount of junk. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170266 91177308-0d34-0410-b5e6-96231b3b80d8
ommandReturnObject.cpp
|
c340ff885da973bcd6ac6cf5a598a71c31efdc5e |
15-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12156204> x/a print wouldn't always reset the word size to the size of a pointer if a previous memory read using x/<gdb-format> had been used that set it to another width. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170264 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupFormat.cpp
|
b1484f7c5b38bf5fbd73622b033ac4343d21624e |
15-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12582041> _regexp_attach doesn't handle the case where no arguments are provided. It now also handles the case you were you pass options. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170262 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
992d227ab9ef1a8ffabc138fd515fb667556ae10 |
12-Dec-2012 |
Enrico Granata <egranata@apple.com> |
Option changes: the option to print the runtime-specific description has been modified in the frame variable, memory read and expression command. All three commands now support a --object-description option, with a shortcut of -O (uppercase letter o) This is a breaking change: frame variable used --objc as the long option name expression used -o as a shortcut memory read uses --objd as the long option name Hopefully, most users won't be affected by the change since people tend to access "expression --object-description" under the alias "po" which still works The test suite has been tweaked accordingly. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169961 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ptionGroupValueObjectDisplay.cpp
|
729e99e4623c57c9adba85ae2e4372f1dd4bd1c3 |
11-Dec-2012 |
Enrico Granata <egranata@apple.com> |
Adding a validation callback mechanism to OptionValueString (such a feature might theoretically be added to the general OptionValue base class should the need arise) Using this mechanism, making sure that the options to pass a summary string or a named summary to frame variable do not have invalid values <rdar://problem/11576143> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169927 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupVariable.cpp
ptionValueString.cpp
|
ba687bbd7c07fe4a3b896ff320c7dc03e6d45b74 |
10-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12827031> Fix the OptionValueFileSpec option value to correctly get the file path when trailing spaces are on the path. The "settings set" command uses the OptionValueFileSpec class to set file paths and if extra spaces are at the end it will include those in the paths. Now we chop up the value send to to OptionValueFileSpec::SetValueFromCString(...) function with "lldb_private::Args" and give an appropriate error if more than one path is used. It also allows for quotes to be used when specifying the path. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169753 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueFileSpec.cpp
|
1dba077021d06844b4713932b994e1fb70f47f24 |
08-Dec-2012 |
Jim Ingham <jingham@apple.com> |
Even when we aren’t going to init all the lldb.frame, etc, globals, init lldb.debugger, since each script interpreter is tied to just one debugger. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169663 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
b9db9d5bb01963774f28540dbe2c5a11f586ff29 |
07-Dec-2012 |
Daniel Malea <daniel.malea@intel.com> |
Fix a few more clang (3.2) warnings on Linux: - remove unused members - add NO_PEDANTIC to selected Makefiles - fix return values (removed NULL as needed) - disable warning about four-char-constants - remove unneeded const from operator*() declaration - add missing lambda function return types - fix printf() with no format string - change sizeof to use a type name instead of variable name - fix Linux ProcessMonitor.cpp to be 32/64 bit friendly - disable warnings emitted by swig-generated C++ code Patch by Matt Kopec! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169645 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
ommandObjectScript.h
akefile
|
d35b7b3bfd21f4fd6b048693563eef1b772ae197 |
07-Dec-2012 |
Daniel Malea <daniel.malea@intel.com> |
More Linux warnings fixes (remove default labels as needed): - as per http://llvm.org/docs/CodingStandards.html#don-t-use-default-labels-in-fully-covered-switches-over-enumerations Patch by Matt Kopec! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169633 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreterPython.cpp
|
14e71ecd9b05d3dff6e7dc3bf3148b4ad5e3989a |
07-Dec-2012 |
Jim Ingham <jingham@apple.com> |
Separate initing the stdout/stderr for running the Python Script interpreter from initing the lldb.target/frame/etc globals, and only do the latter when it makes sense to. <rdar://problem/12554049> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169614 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
49d888d8c3e4de1d2f38d541559f533f1c0bcab3 |
06-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12820334> I modified the "Args::StringtoAddress(...)" function to be able to evaluate address expressions. This is now used for any command line arguments or options that takes addresses like: memory read <addr> [<end-addr>] memory write <addr> breakpoint set --address <addr> disassemble --start-address <addr> --end-address <addr> It calls the expression parser to evaluate the address expression and will also work around the issue where the compiler doesn't like to add offsets to function pointers (which is what happens when you try to evaluate "main + 12"). So there is a temp fix in the Args::StringtoAddress() to work around this until we can get special compiler support for debug expressions with function pointers. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169556 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
2eafcaafe722598d937cc64fd5ae4a3bb49e8dcf |
05-Dec-2012 |
Daniel Malea <daniel.malea@intel.com> |
Define isprint8() wrapper around isprint() in order to avoid crashes on Linux git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169417 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ptions.cpp
|
d891f9b872103235cfd2ed452c6f14a4394d9b3a |
05-Dec-2012 |
Daniel Malea <daniel.malea@intel.com> |
Fix Linux build warnings due to redefinition of macros: - add new header lldb-python.h to be included before other system headers - short term fix (eventually python dependencies must be cleaned up) Patch by Matt Kopec! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169341 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandInterpreter.cpp
ommandObject.cpp
ommandObjectRegexCommand.cpp
ommandObjectScript.cpp
ptionGroupPlatform.cpp
ptionGroupValueObjectDisplay.cpp
ptionGroupVariable.cpp
ptionValueArch.cpp
ptionValueDictionary.cpp
ptionValueFileSpec.cpp
ptionValueFormat.cpp
ptionValueUUID.cpp
ptions.cpp
roperty.cpp
criptInterpreter.cpp
criptInterpreterNone.cpp
|
6475c42148a8ea1ca86e5db465db7eca742d897d |
04-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12798131> Cleaned up the option parsing code to always pass around the short options as integers. Previously we cast this down to "char" and lost some information. I recently added an assert that would detect duplicate short character options which was firing during the test suite. This fix does the following: - make sure all short options are treated as "int" - make sure that short options can be non-printable values when a short option is not required or when an option group is mixed into many commands and a short option is not desired - fix the help printing to "do the right thing" in all cases. Previously if there were duplicate short character options, it would just not emit help for the duplicates - fix option parsing when there are duplicates to parse options correctly. Previously the option parsing, when done for an OptionGroup, would just start parsing options incorrectly by omitting table entries and it would end up setting the wrong option value git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169189 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ptionGroupArchitecture.cpp
ptionGroupBoolean.cpp
ptionGroupFile.cpp
ptionGroupFormat.cpp
ptionGroupOutputFile.cpp
ptionGroupPlatform.cpp
ptionGroupString.cpp
ptionGroupUInt64.cpp
ptionGroupUUID.cpp
ptionGroupValueObjectDisplay.cpp
ptionGroupVariable.cpp
ptionGroupWatchpoint.cpp
ptions.cpp
|
25b2109486963038a436bdb82fd327a6e5bb8d6d |
04-Dec-2012 |
Daniel Malea <daniel.malea@intel.com> |
A few more build fixes for gcc 4.6: - use const char* instead of char* as needed in ObjC language runtime plugin - use int to iterate through enum (operator++ on enum not defined) - use initializer list instead of inline initialization of const field git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169185 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
3e1d95d519fa062fef93323f37fb4c516894dd83 |
03-Dec-2012 |
Sean Callanan <scallanan@apple.com> |
Fixed a crash in which we examined the extension of a file name, whether the file name had an extension or not. <rdar://problem/12793152> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169156 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
9ac7ce312ef8b5327a74d38edf10af86c07586b9 |
30-Nov-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12676084> Dump the traceback when a Python error occurs in "command script import" and the exception is not an ImportError git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169031 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
ec9c2d2785c9c035e36c504618488a8764ecfddb |
30-Nov-2012 |
Greg Clayton <gclayton@apple.com> |
Added new options to "target create" and "target modules add". For "target create" you can now specify "--no-dependents" to not track down and add all dependent shared libraries. This can be handy when doing manual symbolication. Also added the "--symfile" or "-s" for short so you can specify a module and a stand alone debug info file: (lldb) target create --symfile /tmp/a.dSYM /usr/bin/a Added the "--symfile" option to the "target modules add" for the same reason. These all help with manualy symbolication and expose functionality that was previously only available through the public API layer. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169023 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupFile.cpp
ptionGroupPlatform.cpp
ptions.cpp
|
5f35a4be95aed0e5b2cb36f7d785bcbfc67284ae |
29-Nov-2012 |
Daniel Malea <daniel.malea@intel.com> |
Resolve printf formatting warnings on Linux: - use macros from inttypes.h for format strings instead of OS-specific types Patch from Matt Kopec! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@168945 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueArray.cpp
ptionValueEnumeration.cpp
ptionValueSInt64.cpp
ptionValueUInt64.cpp
criptInterpreterPython.cpp
|
6cc99d2321447d895bedb0102d136bbd0fcf8963 |
13-Nov-2012 |
Enrico Granata <egranata@apple.com> |
Giving at least some error information when a Python exception happens during command script import git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167810 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
6f58bbd1473279158f10504ebbd0b5696cf953f9 |
08-Nov-2012 |
Enrico Granata <egranata@apple.com> |
Adding support for loading the scripting resource as part of a framework, lacking the dSYM bundle, or if the bundle has no Pythonic resources whatsoever Solving an issue where "command script import" would fail to pick the file indicated by the user as a result of something with the same name being in an earlier position in sys.path git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167570 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
eeabe815b3d36b69b4666fbbce78a4bf950de3cc |
01-Nov-2012 |
Greg Clayton <gclayton@apple.com> |
Get rid of hack by making the actual call public. This was causing the lldb-platform to not be able to link. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167253 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
f2b0fef6c754acd4f6a3d7cc5cc5f3ad9be98be7 |
01-Nov-2012 |
Filipe Cabecinhas <me@filcab.net> |
Makefile patches from Charles Davis and Daniel Malea (+ one or two tweaks). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167242 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
fd670c24e72a1425434020483689c3cb17f0d975 |
31-Oct-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12586188> Make ImportError a special case for "command script import", such that the error message for the exception becomes the error for the entire import operation and silence the backtrace printout In the process, refactor the Execute* commands in ScriptInterpreter to take an options object, and add a new setting to not mask out errors so that the callers can handle them directly instead of having the default behavior git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167067 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
criptInterpreterNone.cpp
criptInterpreterPython.cpp
|
db05491da80820047dc218542c88ba0d9f08fc71 |
29-Oct-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11449953> Change Debugger::SetOutputFileHandle() so that it does not automatically initialize the script interpreter in order to transfer its output file handle to it This should delay initialization of Python until strictly necessary and speed-up debugger startup Also, convert formatters for SEL and BOOL ObjC data-types from Python to C++, in order to reap more performance benefits from the above changes git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166967 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreterPython.cpp
|
9a91ef68c2650113da5488e09e9cb5f6aa88f6ab |
24-Oct-2012 |
Sean Callanan <scallanan@apple.com> |
This is a fix for the command option parser. There was a generic catch-all type for path arguments called "eArgTypePath," and a specialized version called "eArgTypeFilename." It turns out all the cases where we used eArgTypePath we could have used Filename or we explicitly meant a directory. I changed Path to DirectoryName, made it use the directory completer, and rationalized the uses of Path. <rdar://problem/12559915> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166533 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
ptionGroupOutputFile.cpp
|
800332c3988c78ea002b64b698f38b58ed95d3ba |
23-Oct-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12523238> Commit 1 of 3 This commit enables the new HasChildren() feature for synthetic children providers Namely, it hooks up the required bits and pieces so that individual synthetic children providers can implement a new (optional) has_children call Default implementations have been provided where necessary so that any existing providers continue to work and behave correctly Next steps are: 2) writing smart implementations of has_children for our providers whenever possible 3) make a test case git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166495 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
de1edceb2474399ab9bdbb919a05b536a4d64d49 |
23-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Clean up help/usage messages for kdp-remote / gdb-remote a little bit. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166464 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
61ff3a37c7141c672f30b32f3d94cafa2d326e3e |
23-Oct-2012 |
Sean Callanan <scallanan@apple.com> |
Improved support for language types as command options: - added help ("help language") listing the possible options; - added the possibility of synonyms for language names, in this case "ObjC" for "Objective-C"; and - made matching against language names case insensitive. This should improve discoverability. <rdar://problem/12552359> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166457 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
14cf90e8f8b5be04200504f15cf7a3173f34950a |
22-Oct-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12479701> Use the plain pydoc pager to work around Python help() pagination conflicts with our I/O management git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166432 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
3d656c729a1ed0abad4e5a2d76f6e8a6904f66aa |
22-Oct-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12437442> Given our implementation of ValueObjects we could have a scenario where a ValueObject has a dynamic type of Foo* at one point, and then its dynamic type changes to Bar* If Bar* has synthetic children enabled, by the time we figure that out, our public API is already vending SBValues wrapping a DynamicVO, instead of a SyntheticVO and there was no trivial way for us to change the SP inside an SBValue on the fly This checkin reimplements SBValue in terms of a wrapper, ValueImpl, that allows this substitutions on-the-fly by overriding GetSP() to do The Right Thing (TM) As an additional bonus, GetNonSyntheticValue() now works, and we can get rid of the ForceDisableSyntheticChildren idiom in ScriptInterpreterPython Lastly, this checkin makes sure the synthetic VOs get the correct m_value and m_data from their parents (prevented summaries from working in some cases) git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166426 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
307c7fdc58d19f734991a176db972cc61d9ada16 |
20-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12491387> Added commands to the KDP plug-in that allow sending raw commands through the KDP protocol. You specify a command byte and a payload as ASCII hex bytes, and the packet is created with a valid header/sequenceID/length and sent. The command responds with a raw ASCII hex string that contains all bytes in the reply including the header. An example of sending a read register packet for the GPR on x86_64: (lldb) process plugin packet send --command 0x07 --payload 0100000004000000 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166346 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupString.cpp
|
87e9d32a982a0fb76b8657a897ad5781f9a5d25e |
19-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
Added the infrastructure necessary for plug-ins to be able to add their own settings instead of having settings added to existing ones. In particular "target.disable-kext-loading" was added to "target" where it should actually be specific to the the dynamic loader plugin. Now the plug-in manager has the ability to create settings at the root level starting with "plugin". Each plug-in type can add new sub dictionaries, and then each plug-in can register a setting dictionary under its own short name. For example the DynamicLoaderDarwinKernel plug-in now registers a setting dictionary at: plugin dynamic-loader macosx-kernel (bool) disable-kext-loading To settings can be set using: (lldb) settings set plugin.dynamic-loader.macosx-kernel.disable-kext-loading true I currently only hooked up the DynamicLoader plug-ins, but the code is very easy to duplicate when and if we need settings for other plug-ins. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166294 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueProperties.cpp
|
2657b6bcfdde42ae97cbaac56e8f7ed3857b4605 |
19-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Change the "rb" alias to "rbreak" since some people are used to typing more than "rb" and so weren't finding the alias. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166249 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
2e7f313dc473b036788319690116b324cb44b765 |
19-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12491420> Added a new setting that allows a python OS plug-in to detect threads and provide registers for memory threads. To enable this you set the setting: settings set target.process.python-os-plugin-path lldb/examples/python/operating_system.py Then run your program and see the extra threads. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166244 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterNone.cpp
criptInterpreterPython.cpp
|
47beabb1386be44e3f90dbc30a0b22c23b93a4dc |
16-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Add the ability to set timeout & "run all threads" options both from the "expr" command and from the SB API's that evaluate expressions. <rdar://problem/12457211> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166062 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
13193d5ae15f194102c14a5ccdc46e8db5c3d95f |
13-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12491387> I added the ability for a process plug-in to implement custom commands. All the lldb_private::Process plug-in has to do is override: virtual CommandObject * GetPluginCommandObject(); This object returned should be a multi-word command that vends LLDB commands. There is a sample implementation in ProcessGDBRemote that is hollowed out. It is intended to be used for sending a custom packet, though the body of the command execute function has yet to be implemented! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165861 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
|
6f01c93497df194b6f2194630a81e87d806ce0e0 |
12-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Bunch of cleanups for warnings found by the llvm static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165808 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
ptions.cpp
|
fb332f9349eff4e19051768a6fc3fb681984ef3a |
11-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
When OptionValueFileSpec is given a filename starting with ~, we need to realpath it. Fixes the case where settings set target.expr-prefix ~/lldb.prefix.header wouldn't read this prefix header file. <rdar://problem/12475676> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165704 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueFileSpec.cpp
|
f190a41a2e9a77499709e68ed0822f1498afef4c |
10-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Don't make regexp commands as regular commands - they are "short cuts" and users should be able to override them with "unalias" but you can't unalias normal commands. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165630 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
6937bc1e3cd37c35c6c03fa82c6f876d22fc344b |
06-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Make the error message from regex commands use the command's syntax string if it exists rather than a generic but not at all helpful message about not matching some unknown regex... git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165349 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectRegexCommand.cpp
|
7f6503285fb5e71b89c63abce98dbbb2a8fa898b |
06-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Remove "k" as an alias for "kill". It doesn't ask for confirmation and it's too easy to type by mistake when typing "l" (read: I did this once). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165340 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
2e9d527c0def58b2cef74d71f9a55672933fa7e6 |
05-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Remove the bt alias I inadvertently added back in in my last checkin. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165330 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
2753a024a5a314232baa579c0ada87551aa86988 |
05-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Add one-shot breakpoints (-o option to "break set") and a tbreak alias for our gdb friends. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165328 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
1a48cb7c84595e5fb0634c4758a84bb0dda012d2 |
05-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Change the "bt" command alias defined in CommandInterpreter::LoadCommandDictionary. It is now a regex command alias that more faithfully emulates gdb's behavior, most importantly, "bt 5" will backtrace 5 frames of the currently selected thread. "bt all" still backtraces all threads (unlike gdb) and for users who have learned to use "bt -c 5", that form is still accepted. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165300 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
bf41e19c78f0c84671d21eadec3954ab6db550c1 |
05-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Ran the sources through the compiler with -Wshadow warnings enabled after we'd found a few bugs that were caused by shadowed local variables; the most important issue this turned up was a common mistake of trying to obtain a mutex lock for the scope of a code block by doing Mutex::Locker(m_map_mutex); This doesn't assign the lock object to a local variable; it is a temporary that has its dtor called immediately. Instead, Mutex::Locker locker(m_map_mutex); does what is intended. For some reason -Wshadow happened to highlight these as shadowed variables. I also fixed a few obivous and easy shadowed variable issues across the code base but there are a couple dozen more that should be fixed when someone has a free minute. <rdar://problem/12437585> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165269 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueFileSpecLIst.cpp
ptionValuePathMappings.cpp
|
2f1014bdef1dba6163afec1eb5a3076d7117bd9d |
01-Oct-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12406088> Fixing a crasher with adding a regex command, due to accessing a shared pointer without first checking for NULL git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164950 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
6d101887bb427b3c879c0c06775ab4dcb1cd265b |
29-Sep-2012 |
Enrico Granata <egranata@apple.com> |
Implementing plugins that provide commands. This checkin adds the capability for LLDB to load plugins from external dylibs that can provide new commands It exports an SBCommand class from the public API layer, and a new SBCommandPluginInterface There is a minimal load-only plugin manager built into the debugger, which can be accessed via Debugger::LoadPlugin. Plugins are loaded from two locations at debugger startup (LLDB.framework/Resources/PlugIns and ~/Library/Application Support/LLDB/PlugIns) and more can be (re)loaded via the "plugin load" command For an example of how to make a plugin, refer to the fooplugin.cpp file in examples/plugins/commands Caveats: Currently, the new API objects and features are not exposed via Python. The new commands can only be "parsed" (i.e. not raw) and get their command line via a char** parameter (we do not expose our internal Args object) There is no unloading feature, which can potentially lead to leaks if you overwrite the commands by reloading the same or different plugins There is no API exposed for option parsing, which means you may need to use getopt or roll-your-own git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164865 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
437b5bccea45a5981edbbbeb4e23424aec4ce774 |
28-Sep-2012 |
Greg Clayton <gclayton@apple.com> |
Wrapped up the work I am going to do for now for the "add-dsym" or "target symfile add" command. We can now do: Specify a path to a debug symbols file: (lldb) add-dsym <path-to-dsym> Go and download the dSYM file for the "libunc.dylib" module in your target: (lldb) add-dsym --shlib libunc.dylib Go and download the dSYM given a UUID: (lldb) add-dsym --uuid <UUID> Go and download the dSYM file for the current frame: (lldb) add-dsym --frame git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164806 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupBoolean.cpp
ptionValueFileSpec.cpp
ptionValueUUID.cpp
roperty.cpp
|
73feea495a1ed9850f8ff46092f4c3ff935242a8 |
27-Sep-2012 |
Jason Molenda <jmolenda@apple.com> |
Change the kdp-remote alias to require a hostname (instead of allowing a zero-length hostname to be specified). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164752 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
f2e53a53d931692a76f0f8b73a8c38f1bf2cffe9 |
27-Sep-2012 |
Greg Clayton <gclayton@apple.com> |
Added "k" as an alias to "process kill" since the new "kdb-remote" will now conflict with it. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164737 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c3750435abd083cc11fa7614007a7a5c38a84f38 |
27-Sep-2012 |
Greg Clayton <gclayton@apple.com> |
Add convenience aliases to allow easy attaching to a remote gdb server or kdp (darwin kernel) server with the new "gdb-remote" regex alias and "kdp-remote" regex alias commands. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164729 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
b2c0a126c2b4ab456553036967c069d00b5241d7 |
21-Sep-2012 |
Enrico Granata <egranata@apple.com> |
Fixing a logic error where we would incorrectly show the newly crafted function not found error for a Python function in some cases where the function actually existed and had an empty docstring git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164334 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
5b9f77786d1e9fd356e1fe2d18ce6fcd74977c98 |
18-Sep-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12188843> Fixing a problem where a Python command created in the same module where the target function is defined causes the help string not to come out git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164172 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
851e30ec6a1b1d2c154bb7d69ed0d05b5fd14705 |
18-Sep-2012 |
Greg Clayton <gclayton@apple.com> |
Stop using the "%z" size_t modifier and cast all size_t values to uint64_t. Some platforms don't support this modification. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164148 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ptionValueArray.cpp
|
4bb4f30fef9281506baf536a254cac17ae68bd73 |
14-Sep-2012 |
Filipe Cabecinhas <me@filcab.net> |
Fixed some problems with SWIG bindings. This may (but shouldn't) break Linux (but I tested and it still worked on FreeBSD). The same shell scripts are now used on Xcode and Makefiles, for generating the SWIG bindings. Some compatibility fixes were applied, too (python path, bash-isms, etc). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163912 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
3bfaad6baec573ae2facf2f2acae0948c1a422bd |
13-Sep-2012 |
Sean Callanan <scallanan@apple.com> |
Made the help for the -n option on "target image lookup" a bit better documented by indicating that it takes symbols OR functions. <rdar://problem/12281325> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163839 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
5ebd51f464587ba848698fdf48429adc8bad9068 |
11-Sep-2012 |
Filipe Cabecinhas <me@filcab.net> |
Some more typing-related fixes. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163638 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupValueObjectDisplay.cpp
|
d27026e46d8430fb451d85ac161a8492e1930245 |
05-Sep-2012 |
Enrico Granata <egranata@apple.com> |
Implementing an Options class for EvaluateExpression() in order to make the signature more compact and make it easy to 'just run an expression' git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163239 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
3b1afc6cc5689b749a48a1506f17ca593b1cda42 |
01-Sep-2012 |
Greg Clayton <gclayton@apple.com> |
Made it so changes to the prompt via "settings set prompt" get noticed by the command line. Added the ability for OptionValueString objects to take flags. The only flag is currently for parsing escape sequences. Not the prompt string can have escape characters translate which will allow colors in the prompt. Added functions to Args that will parse the escape sequences in a string, and also re-encode the escape sequences for display. This was looted from other parts of LLDB (the Debugger::FormatString() function). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163043 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandReturnObject.cpp
ptionValueProperties.cpp
ptionValueString.cpp
roperty.cpp
criptInterpreterPython.cpp
|
fc04d2463ad654c28f9ee2ee836174cc86b7f8b8 |
30-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
OptionValueFileSpec had an accessor to read the contents of the file and return the data. This can end up being used to get the string contents of a text file and could end up not being NULL terminated. I added accessors to get the file contents raw, or with a null terminator. Added the needed calls to make this happen in the FileSpec and File classes. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162921 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValueFileSpec.cpp
|
49ce8969d3154e1560106cfe530444c09410f217 |
29-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11757916> Make breakpoint setting by file and line much more efficient by only looking for inlined breakpoint locations if we are setting a breakpoint in anything but a source implementation file. Implementing this complex for a many reasons. Turns out that parsing compile units lazily had some issues with respect to how we need to do things with DWARF in .o files. So the fixes in the checkin for this makes these changes: - Add a new setting called "target.inline-breakpoint-strategy" which can be set to "never", "always", or "headers". "never" will never try and set any inlined breakpoints (fastest). "always" always looks for inlined breakpoint locations (slowest, but most accurate). "headers", which is the default setting, will only look for inlined breakpoint locations if the breakpoint is set in what are consudered to be header files, which is realy defined as "not in an implementation source file". - modify the breakpoint setting by file and line to check the current "target.inline-breakpoint-strategy" setting and act accordingly - Modify compile units to be able to get their language and other info lazily. This allows us to create compile units from the debug map and not have to fill all of the details in, and then lazily discover this information as we go on debuggging. This is needed to avoid parsing all .o files when setting breakpoints in implementation only files (no inlines). Otherwise we would need to parse the .o file, the object file (mach-o in our case) and the symbol file (DWARF in the object file) just to see what the compile unit was. - modify the "SymbolFileDWARFDebugMap" to subclass lldb_private::Module so that the virtual "GetObjectFile()" and "GetSymbolVendor()" functions can be intercepted when the .o file contenst are later lazilly needed. Prior to this fix, when we first instantiated the "SymbolFileDWARFDebugMap" class, we would also make modules, object files and symbol files for every .o file in the debug map because we needed to fix up the sections in the .o files with information that is in the executable debug map. Now we lazily do this in the DebugMapModule::GetObjectFile() Cleaned up header includes a bit as well. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162860 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValue.cpp
|
b2e953d1d753bc725ea78f573c150493b99e2205 |
27-Aug-2012 |
Filipe Cabecinhas <me@filcab.net> |
Fix include path for Linux and FreeBSD. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162679 91177308-0d34-0410-b5e6-96231b3b80d8
ythonDataObjects.cpp
|
a47e44b447750f33bff81995f41c4051fc699409 |
24-Aug-2012 |
Johnny Chen <johnny.chen@apple.com> |
rdar://problem/11811338 Add 'attach <pid>|<process-name>' command to lldb, as well as 'detach' which is an alias of 'process detach'. Add two completion test cases for "attach" and "detach". git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162573 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
b8f126a807c00e5c2d0e7faaf764c38072cd6764 |
24-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
The OS plug-in can now get data from a python script that implements the protocol. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162540 91177308-0d34-0410-b5e6-96231b3b80d8
ythonDataObjects.cpp
criptInterpreterPython.cpp
|
88b980bfd735c4691b7f0771a45a78cb75033564 |
24-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
Added Args::StringForEncoding(), Args::StringToGenericRegister() and centralized the parsing of the string to encoding and string to generic register. Added code the initialize the register context in the OperatingSystemPython plug-in with the new PythonData classes, and added a test OperatingSystemPython module in lldb/examples/python/operating_system.py that we can use for testing. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162530 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ythonDataObjects.cpp
|
cec963a709ec4fa099ea44a8abe67639c5fb8abe |
24-Aug-2012 |
Enrico Granata <egranata@apple.com> |
Fixing a bunch of issues with the OS plugin code git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162527 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
3e85b6378d312866ab25eb5623d9b8253bc498f8 |
24-Aug-2012 |
Enrico Granata <egranata@apple.com> |
Hooking up two more calls for the PythonOSPlugin stuff. The part of code to fetch the data and convert it to C++ objects is still missing, but will come git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162522 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
155ee91cc315888c26de1bfebd876bf35b857329 |
24-Aug-2012 |
Enrico Granata <egranata@apple.com> |
Adding bindings to the Script Interpreter for some basic Python OS plugin functionality (still WIP) git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162513 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
12477554ee676b775ec419575e1b091fa95bdc80 |
24-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
Switch over to using object instances for all PythonData objects. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162504 91177308-0d34-0410-b5e6-96231b3b80d8
ythonDataObjects.cpp
|
ff72cd0a987a81049589f40e1feecd9ad92ef550 |
24-Aug-2012 |
Jim Ingham <jingham@apple.com> |
Clarify the doc string for register-name a bit, add flags. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162503 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
811708c938da75d9c7448a65490ee8dc3e5433f7 |
24-Aug-2012 |
Jim Ingham <jingham@apple.com> |
Document the generic register names in help for register-name. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162500 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
c66662664c44f34f891f39e4e416f766c7347f3c |
24-Aug-2012 |
Enrico Granata <egranata@apple.com> |
A first version of a bunch of classes that wrap commonly used Python objects in a ref-counting and type-safe C++ API git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162481 91177308-0d34-0410-b5e6-96231b3b80d8
ythonDataObjects.cpp
|
e5f12977294c8d210d8fc90abd0aa7310760cb37 |
23-Aug-2012 |
Jim Ingham <jingham@apple.com> |
gdb format should default to count of 1. <rdar://problem/12161861> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162470 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupFormat.cpp
|
58edac307c3c3c60db52a491c101b6565b9b234f |
23-Aug-2012 |
Johnny Chen <johnny.chen@apple.com> |
rdar://problem/12022371 Make it so that "b 245" should set a breakpoint at line 245 of the current file. Also add a simple test file. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162419 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
9f282851b07ff6daee37cd3b1a3fbc43ef11da29 |
23-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12022079> Added a new "interpreter" properties to encapsulate any properties for the command interpreter. Right now this contains only "expand-regex-aliases", so you can now enable (disabled by default) the echoing of the command that a regular expression alias expands to: (lldb) b main Breakpoint created: 1: name = 'main', locations = 1 Note that the expanded regular expression command wasn't shown by default. You can enable it if you want to: (lldb) settings set interpreter.expand-regex-aliases true (lldb) b main breakpoint set --name 'main' Breakpoint created: 1: name = 'main', locations = 1 Also enabled auto completion for enumeration option values (OptionValueEnumeration) and for boolean option values (OptionValueBoolean). Fixed auto completion for settings names when nothing has been type (it should show all settings). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162418 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObjectRegexCommand.cpp
ptionValueBoolean.cpp
ptionValueEnumeration.cpp
|
c6e82e4a323d7a7168b05365c53c9bc2e0d418e3 |
22-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
Remove further outdated "settings" code and also implement a few missing things. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162376 91177308-0d34-0410-b5e6-96231b3b80d8
ptionValue.cpp
ptionValueFileSpec.cpp
ptionValueProperties.cpp
|
73844aa19a7360b662e2be710fc3c969d6c86606 |
22-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation: - no setting auto completion - very manual and error prone way of getting/setting variables - tons of code duplication - useless instance names for processes, threads Now settings can easily be defined like option values. The new settings makes use of the "OptionValue" classes so we can re-use the option value code that we use to set settings in command options. No more instances, just "does the right thing". git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162366 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
amedOptionValue.cpp
ptionGroupValueObjectDisplay.cpp
ptionValue.cpp
ptionValueArch.cpp
ptionValueArgs.cpp
ptionValueArray.cpp
ptionValueBoolean.cpp
ptionValueDictionary.cpp
ptionValueEnumeration.cpp
ptionValueFileSpec.cpp
ptionValueFileSpecLIst.cpp
ptionValueFormat.cpp
ptionValuePathMappings.cpp
ptionValueProperties.cpp
ptionValueRegex.cpp
ptionValueSInt64.cpp
ptionValueString.cpp
ptionValueUInt64.cpp
ptionValueUUID.cpp
roperty.cpp
|
8165d43ee84ab51de9218ba38bea257d082cec1f |
18-Aug-2012 |
Johnny Chen <johnny.chen@apple.com> |
Merge python-GIL bracnh (by filcab) back into trunk! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162161 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
8121d7a8df909c2b8e9e0da92c39350b43b4dff8 |
18-Aug-2012 |
Johnny Chen <johnny.chen@apple.com> |
Fix a race condition where multiple PythonInputReaderManager instances could, during destruction, tread on the m_embedded_thread_input_reader_sp singleton maintained by the script interpreter. Furthermore, use two additional slots under the script interpreter to store the PseudoTerminal and the InputReaderSP pertaining to the embedded python interpreter -- resulted from the ScriptInterpreterPython::ExecuteInterpreterLoop() call -- to facilitate separation from what is being used by the PythonInputReaderManager instances. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162147 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
f3ec4617297810223deb545cb68214ca4dd8009c |
10-Aug-2012 |
Johnny Chen <johnny.chen@apple.com> |
rdar://problem/11457143 [ER] need "watchpoint command ..." Add 'watchpoint command add/delete/list' to lldb, plus two .py test files. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161638 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
3908bb19f5f7956dcb58d6cfca3958103af776a6 |
10-Aug-2012 |
Johnny Chen <johnny.chen@apple.com> |
Added back member initialization for m_batch_command_mode, which was most likely removed accidentally a while back. The consequence occurred recently probably due to our swicth to build with c++11. This fixed 3 test failures. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161625 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
879de484c7ef1d0971ac6c007b319b8285723e69 |
10-Aug-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11578397> Adding a new --summary-string option for the frame variable command which allows the user to provide a summary string with which he wants to display the variables without having to make a named summary first git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161623 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupVariable.cpp
|
b386d82334b65fb984348f2027b1cb7714de993f |
09-Aug-2012 |
Sean Callanan <scallanan@apple.com> |
Removed explicit NULL checks for shared pointers and instead made us use implicit casts to bool. This generated a warning in C++11. <rdar://problem/11930775> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161559 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c1ca9dcd0e8a1c7c5a882281afdd2a5145026fd0 |
08-Aug-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11975483> Removing user-visible references to 'dict' as a parameter name for Python summary-generating functions since it is a Python keyword. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161467 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
59959ebd87b269b0a690cf88f103a370e973de73 |
08-Aug-2012 |
Sean Callanan <scallanan@apple.com> |
Made "call" another alias for "expression --", for people used to the GDB command. <rdar://problem/12052072> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161466 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
0d66ca995bf39c13fdc37890c03e314fa2304619 |
08-Aug-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11576169> Better documentation string for the -Y option to frame variable git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161464 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupValueObjectDisplay.cpp
|
ca2c707cae740f76292714e5b517b151dfbd1b2c |
31-Jul-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11862570> Fixing a potential crasher related to Python locking git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161054 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
4078a302dda9426a35ef00d7ca557a6c2ec44193 |
21-Jul-2012 |
Jim Ingham <jingham@apple.com> |
Handle backslash protection inside unquoted commands like: (lldb) file hello\ world correctly. <rdar://problem/11093911> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160591 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
4a379b1194f3e6b308cd6e80b45d6ca5dd0aafd7 |
17-Jul-2012 |
Greg Clayton <gclayton@apple.com> |
Ran the static analyzer on the codebase and found a few things. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160338 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
6cca9695637b27bd583eaae310d5c09dede7cc49 |
17-Jul-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11672978> Fixing an issue where an ObjC object might come out without a description because the expression used to obtain it would timeout before running to completion git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160326 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
bcaf99a74367d464dd38011e26b9b4be56b503ba |
12-Jul-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11791234> Fixed a case where the python interpreter could end up holding onto a previous lldb::SBProcess (probably in lldb.process) when run under Xcode. Prior to this fix, the lldb::SBProcess held onto a shared pointer to a lldb_private::Process. This in turn could cause the process to still have a thread list with stack frames. The stack frames would have module shared pointers in the lldb_private::SymbolContext objects. We also had issues with things staying in the shared module list too long when we found things by UUID (we didn't remove the out of date ModuleSP from the global module cache). Now all of this is fixed and everything goes away between runs. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160140 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
b88c0a917d30af9d6f767171d180bb75501848c1 |
10-Jul-2012 |
Enrico Granata <egranata@apple.com> |
Turning the interpreter mutex into a static global to avoid a potential leak. Might need to be turned back into a pointer if it causes issues with the destructor chain. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160012 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c5c10a47fd8ee2d6b6a55647a59ad429b02ef296 |
10-Jul-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11751427> Fixing an issue where multiple threads could concurrently try and initialize Python and cause crashes git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160008 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
36eb7c00064891bd013938be1edc77738cf1a53f |
06-Jul-2012 |
Jason Molenda <jmolenda@apple.com> |
Change the "run" / "r" command alias to not use --shell for lldb running natively on arm - on iOS we have to do some extra work to track the inferior process if we launch with a shell intermediary. <rdar://problem/11719396> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159803 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
da26bd203cbb104291b39891febf7481794f205f |
08-Jun-2012 |
Jim Ingham <jingham@apple.com> |
Make raw & parsed commands subclasses of CommandObject rather than having the raw version implement an Execute which was never going to get run and another ExecuteRawCommandString. Took the knowledge of how to prepare raw & parsed commands out of CommandInterpreter and put it in CommandObject where it belongs. Also took all the cases where there were the subcommands of Multiword commands declared in the .h file for the overall command and moved them into the .cpp file. Made the CommandObject flags work for raw as well as parsed commands. Made "expr" use the flags so that it requires you to be paused to run "expr". git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@158235 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
ommandObjectRegexCommand.cpp
ommandObjectScript.cpp
ommandObjectScript.h
|
a1ba314f3c8eb40424547836769e93f9b65e7969 |
07-Jun-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11538779> Fixing issues where Python scripts were not able to read user input and/or display output to the user in certain situations - This fix introduces a Python InputReader manager class that mimics the behavior of the interactive interpreter in terms of access to I/O and ensures access to the input and output flows git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@158124 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
criptInterpreterNone.cpp
criptInterpreterPython.cpp
|
1e0e73a403ffbbeafa7a98e958909b56be929cf0 |
04-Jun-2012 |
Johnny Chen <johnny.chen@apple.com> |
Give more explicit error messages when watchpoint creation command (watchpoint set) fails, like number of supported hardware watchpoints reached or the watch size is not allowed. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157948 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupWatchpoint.cpp
|
ee301fa37c161f85f8d3df49453bf905227d0283 |
02-Jun-2012 |
Sean Callanan <scallanan@apple.com> |
Added "kill" as an alias for "process kill". git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157856 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
01bc2d493b48e4904e3241a7768e18fdd9bb6835 |
31-May-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11328896> Fixing a bug where regex commands were saved in the history even if they came from a 'command sourced' file - this fix introduces a command sourcing depth and disables history for all levels of depth > 0, which means no commands go into history when being sourced from a file. we need an integer depth because command files might themselves source other command files, ... git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157727 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObjectRegexCommand.cpp
|
e23940fece748f8702bb5bc2383af19bb97275dd |
29-May-2012 |
Johnny Chen <johnny.chen@apple.com> |
Fix arch_helper() to return the list of supported architectures. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157643 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
2f1efa97eabce336c0f3a3fc884d71f2786fbf32 |
29-May-2012 |
Filipe Cabecinhas <me@filcab.net> |
Commit Charles Davis' patch with some additional modifications. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157621 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
dc43bbf5ec5cb2e92da9250cdea0b3ebcdccefc0 |
26-May-2012 |
Greg Clayton <gclayton@apple.com> |
Fixed memory management issues introduced by revision 157507. A local std::string was being filled in and then the function would return "s.c_str()". A local StreamString (which contains a std::string) was being filled in, and essentially also returning the c string from the std::string, though it was in a the StreamString class. The fix was to not do this by passing a stream object into StringList::Join() and fix the "arch_helper()" function to do what it should: cache the result in a global. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157519 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
746323a3deff83edfc0cfd60aab136d43a78b7c8 |
26-May-2012 |
Johnny Chen <johnny.chen@apple.com> |
rdar://problem/11535045 Make 'help arch' return the list of supported architectures. Add a convenience method StringList::Join(const char *separator) which is called from the help function for 'arch'. Also add a simple test case. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157507 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
7b71b172c516740a3d9db3b5959f4e20a816b741 |
21-May-2012 |
Sean Callanan <scallanan@apple.com> |
Added an "rb" alias that sets breakpoints by regular expression. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157202 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
86c50d733f7195867fb8240e1696a8001f5423a0 |
18-May-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11405850> The "run" and "r" aliases were for gdb compatability, so make then do what GDB does by default: launch in a shell. For those that don't want launching with a shell by default, add the following to your ~/.lldbinit file: command unalias run command unalias r command alias r process launch -- command alias run process launch -- git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157028 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
4bc8d16c0aeb8645a5ac70908639ca1e55018aab |
17-May-2012 |
Filipe Cabecinhas <me@filcab.net> |
Warn the user when several commands match the input given. Added a testcase. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156961 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
08af5983cb349e7167f3832d00d36ca611bfa2f1 |
16-May-2012 |
Johnny Chen <johnny.chen@apple.com> |
Include llvm/ADT/STLExtras.h from lldb/Utility/Utils.h and use llvm::array_lengthof(), instead. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156876 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupArchitecture.cpp
ptionGroupOutputFile.cpp
ptionGroupPlatform.cpp
ptionGroupUUID.cpp
ptionGroupValueObjectDisplay.cpp
ptionGroupVariable.cpp
ptionGroupWatchpoint.cpp
|
1a7f63039d43d93c6acbcac89a009c4660126099 |
11-May-2012 |
Greg Clayton <gclayton@apple.com> |
Fixed an issue in the platform options where if no architecture was specified where the platform would fail to select itself with something like: (lldb) platfrom select remote-ios git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156626 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupPlatform.cpp
|
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
ptionGroupPlatform.cpp
|
fc58af2513c7c9883df515686a5906d95a19ecf0 |
05-May-2012 |
Sean Callanan <scallanan@apple.com> |
Added an "attach" alias as promised on the web page. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156223 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
2b53695d7b59dc5d581673b59b3f2f0895240f58 |
04-May-2012 |
Johnny Chen <johnny.chen@apple.com> |
When the current thread state is NULL, PyThreadState_Get() issues a fatal error. Use a gentler API PyThreadState_GetDict(), instead. rdar://problem/11292882 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156200 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
431d26daf9c89fd34310f39dbc00f26ee39c520f |
26-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Patch from Viktor Kutuzov: changes the method declarations to const for the Args::GetCommandString and Agrs::GetQuotedCommandString methods. It allows using of these methods within the other const methods. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155593 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
a5c2ce05705f784fd4ada97823af6ff7006fea58 |
25-Apr-2012 |
Enrico Granata <egranata@apple.com> |
Returning data formatters to their previous working condition - Plus fixing an issue that was preventing Python oneliners from executing git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155563 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
6f2f0ab38426bdb5ed347f057ba57248667a40c3 |
25-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Now that we have an LLDB package, make the "lldb.macosx.crashlog" module work with all of the new module paths. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155528 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
0d235d5864e996d95f485df1a0df406126e1ccde |
25-Apr-2012 |
Enrico Granata <egranata@apple.com> |
Making the Cocoa formatters comply with the new on-disk layout of the Python resources - This is one of the steps towards making the data formatters work again git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155526 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
4e651b1222992d3d93d11ca2f84c69477165e117 |
25-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Maked LLDB into a package so we can import things without poluting the global namespace. Enrico will follow this up with fixing the data formatter test cases that are failing. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155514 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
862fd5cdbaae4fab78d897be3e28aa3d7290aeb8 |
24-Apr-2012 |
Jim Ingham <jingham@apple.com> |
Report the command error when we are in "stop on error mode." git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155422 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
7aa754c61ffc6fbe6eb32235c1e17ab696225733 |
04-Apr-2012 |
Enrico Granata <egranata@apple.com> |
Fixing a potential crasher where Python would assume we have no thread state while clearing out an SBDebugger which was acquiring input from the interactive interpreter git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154027 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
c84623f95ddc04c800f5ef96c840eb1afc45563b |
29-Mar-2012 |
Greg Clayton <gclayton@apple.com> |
Added a "add-dsym" alias to "target symbols add" to keep gdb converts happy. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153695 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
7e202269d09cebf2f5047bf92fff8c8ecf732448 |
29-Mar-2012 |
Enrico Granata <egranata@apple.com> |
Part 1 of a series of fixes meant to improve reliability and increase ease of bug fixing for data formatter issues. We are introducing a new Logger class on the Python side. This has the same purpose, but is unrelated, to the C++ logging facility The Pythonic logging can be enabled by using the following scripting commands: (lldb) script Logger._lldb_formatters_debug_level = {0,1,2,...} 0 = no logging 1 = do log 2 = flush after logging each line - slower but safer 3 or more = each time a Logger is constructed, log the function that has created it more log levels may be added, each one being more log-active than the previous by default, the log output will come out on your screen, to direct it to a file: (lldb) script Logger._lldb_formatters_debug_filename = 'filename' that will make the output go to the file - set to None to disable the file output and get screen logging back Logging has been enabled for the C++ STL formatters and for Cocoa class NSData - more logging will follow synthetic children providers for classes list and map (both libstdcpp and libcxx) now have internal capping for safety reasons this will fix crashers where a malformed list or map would not ever meet our termination conditions to set the cap to a different value: (lldb) script {gnu_libstdcpp|libcxx}.{map|list}_capping_size = new_cap (by default, it is 255) you can optionally disable the loop detection algorithm for lists (lldb) script {gnu_libstdcpp|libcxx}.list_uses_loop_detector = False git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153676 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
67812172eecc4426c17b25354af072f6a4a9aad9 |
27-Mar-2012 |
Enrico Granata <egranata@apple.com> |
adding a summary for Objective-C type 'Class' git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153541 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
dba1de8d585f27601162f674d30ab71d9c83ccde |
27-Mar-2012 |
Enrico Granata <egranata@apple.com> |
Synthetic values are now automatically enabled and active by default. SBValue is set up to always wrap a synthetic value when one is available. A new setting enable-synthetic-value is provided on the target to disable this behavior. There also is a new GetNonSyntheticValue() API call on SBValue to go back from synthetic to non-synthetic. There is no call to go from non-synthetic to synthetic. The test suite has been changed accordingly. Fallout from changes to type searching: an hack has to be played to make it possible to use maps that contain std::string due to the special name replacement operated by clang Fixing a test case that was using libstdcpp instead of libc++ - caught as a consequence of said changes to type searching git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153495 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
b1db658333cdebca31a128be95e926d80c3c7796 |
20-Mar-2012 |
Greg Clayton <gclayton@apple.com> |
Platforms can now auto-select themselves if you specify a full target triple when doing a "target create" command. Each platform now knows if it can handle an architecture and a platform can be found using an architecture. Each platform can look at the arch, vendor and OS and know if it should be used or not. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153104 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupPlatform.cpp
|
cf09f885c201becf51acc4a5cfac00b3df53f2a8 |
19-Mar-2012 |
Enrico Granata <egranata@apple.com> |
Massive enumeration name changes: a number of enums in ValueObject were not following the naming pattern Changes to synthetic children: - the update(self): function can now (optionally) return a value - if it returns boolean value True, ValueObjectSyntheticFilter will not clear its caches across stop-points this should allow better performance for Python-based synthetic children when one can be sure that the child ValueObjects have not changed - making a difference between a synthetic VO and a VO with a synthetic value: now a ValueObjectSyntheticFilter will not return itself as its own synthetic value, but will (correctly) claim to itself be synthetic - cleared up the internal synthetic children architecture to make a more consistent use of pointers and references instead of shared pointers when possible - major cleanup of unnecessary #include, data and functions in ValueObjectSyntheticFilter itself - removed the SyntheticValueType enum and replaced it with a plain boolean (to which it was equivalent in the first place) Some clean ups to the summary generation code Centralized the code that clears out user-visible strings and data in ValueObject More efficient summaries for libc++ containers git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153061 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
03e498efe944107d49ae637fd35ac57b994efb1b |
15-Mar-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11052829> Fixed a case where if you have a argument stirng that ends with a '\' character, it would infinite loop while consuming all of your memory. Also fixed a case where non-quote terminated strings would inefficiently be handled. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152809 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
66205ce5381ab6db1f9bff83c483a4dc5854afc7 |
12-Mar-2012 |
Enrico Granata <egranata@apple.com> |
Added formatters for libc++ (http://libcxx.llvm.org): std::string has a summary provider std::vector std::list and std::map have both a summary and a synthetic children provider Given the usage of a custom namespace (std::__1::classname) for the implementation of libc++, we keep both libstdcpp and libc++ formatters enabled at the same time since that raises no conflicts and enabled for seamless transition between the two The formatters for libc++ reside in a libcxx category, and are loaded from libcxx.py (to be found in examples/synthetic) The formatters-stl test cases have been divided to be separate for libcxx and libstdcpp. This separation is necessary because (a) we need different compiler flags for libc++ than for libstdcpp (b) libc++ inlines a lot more than libstdcpp and some code changes were required to accommodate this difference git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152570 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
c65046d4ce6f4f0663750273f340cc14e06f1b71 |
08-Mar-2012 |
Johnny Chen <johnny.chen@apple.com> |
Fixed a crasher when Xcode calls into ScriptInterpreterPython::ResetOutputFileHandle(). The Locker should only perform acquire/free lock operation, but no enter/leave session at all. Also added sanity checks for items passed to the PyDict_SetItemString() calls. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152337 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
400105dd92731a0c8968d6296b0b7279b483ebf0 |
07-Mar-2012 |
Enrico Granata <egranata@apple.com> |
Using the new ScriptInterpreterObject in the implementation of synthetic children to enhance type safety Several places in the ScriptInterpreter interface used StringList objects where an std::string would suffice - Fixed Refactoring calls that generated special-purposes functions in the Python interpreter to use helper functions instead of duplicating blobs of code git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152164 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
4722b10307668368bf0f12fa6b8691e4f4cb5488 |
06-Mar-2012 |
Jim Ingham <jingham@apple.com> |
Add a command and an SB API to create exception breakpoints. Make the break output prettier for Exception breakpoints. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152081 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
de3b25b645e4b4d97a87ebf059056a6c696d4e9c |
03-Mar-2012 |
Enrico Granata <egranata@apple.com> |
added a new formatter for CF(Mutable)BitVector fixed a few potential NULL-pointer derefs in ValueObject we have a way to provide docstrings for properties we add to the SWIG layer - a few of these properties have a docstring already, more will come in future commits added a new bunch of properties to SBData to make it more natural and Python-like to access the data they contain git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151962 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
86fcb16c848b7503b2d082158886359ef76f1a84 |
02-Mar-2012 |
Enrico Granata <egranata@apple.com> |
(a) adding formatters for: NSTimeZone and CFTimeZonRef SEL and related types CFGregorianDate git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151866 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
83410e5e9e040ea5c6691f933aa9a6c4dcea4d8b |
01-Mar-2012 |
Enrico Granata <egranata@apple.com> |
(a) adding an introspection formatter for NS(Mutable)IndexSet (b) fixes and improvements to the formatters for NSDate and NSString (c) adding an introspection formatter for NSCountedSet (d) making the Objective-C formatters test cases pass on both 64 and 32 bit one of the test cases is marked as expected failure on i386 - support needs to be added to the LLDB core for it to pass git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151826 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
f125250ba7bcaa2ea5ee95539a309e3fd2f8b5d7 |
29-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10605072> Added the ability to override command line commands. In some cases GUI interfaces might want to intercept commands like "quit" or "process launch" (which might cause the process to re-run). They can now do so by overriding/intercepting commands by using functions added to SBCommandInterpreter using a callback function. If the callback function returns true, the command is assumed to be handled. If false is returned the command should be evaluated normally. Adopted this up in the Driver.cpp for intercepting the "quit" command. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151708 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
|
1328b1410eb0f5e03c3b3ee302e9adca3e1b0361 |
29-Feb-2012 |
Enrico Granata <egranata@apple.com> |
This commit: a) adds a Python summary provider for NSDate b) changes the initialization for ScriptInterpreter so that we are not passing a bulk of Python-specific function pointers around c) provides a new ScriptInterpreterObject class that allows for ref-count safe wrapping of scripting objects on the C++ side d) contains much needed performance improvements: 1) the pointer to the Python function generating a scripted summary is now cached instead of looked up every time 2) redundant memory reads in the Python ObjC runtime wrapper are eliminated 3) summaries now use the m_summary_str in ValueObject to store their data instead of passing around ( == copying) an std::string object e) contains other minor fixes, such as adding descriptive error messages for some cases of summary generation failure git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151703 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
41641f9abd85d146ff5953a93d6c78309e845aad |
29-Feb-2012 |
Johnny Chen <johnny.chen@apple.com> |
Patch from Filipe Cabecinhas! Attached is a small python fix to save the current stout and std err when starting a python session, then diverting them (as it was before), and restoring the previous values afterwards. Otherwise, a python script could suddenly find itself without output. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151693 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
8f84cfb6f46256ae98a40fd217b206f48b7345c8 |
24-Feb-2012 |
Enrico Granata <egranata@apple.com> |
This patch provides a set of formatters for most of the commonly used Cocoa classes. The formatter for NSString is an improved version of the one previously shipped as an example, the others are new in design and implementation. A more robust and OO-compliant Objective-C runtime wrapper is provided for runtime versions 1 and 2 on 32 and 64 bit. The formatters are contained in a category named "AppKit", which is not enabled at startup. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151299 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
f4124deeb9532044a38c0774ced872f2709347da |
21-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Thread hardening part 3. Now lldb_private::Thread objects have std::weak_ptr objects for the backlink to the lldb_private::Process. The issues we were running into before was someone was holding onto a shared pointer to a lldb_private::Thread for too long, and the lldb_private::Process parent object would get destroyed and the lldb_private::Thread had a "Process &m_process" member which would just treat whatever memory that used to be a Process as a valid Process. This was mostly happening for lldb_private::StackFrame objects that had a member like "Thread &m_thread". So this completes the internal strong/weak changes. Documented the ExecutionContext and ExecutionContextRef classes so that our LLDB developers can understand when and where to use ExecutionContext and ExecutionContextRef objects. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151009 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
b4d7fc0c466d446876e5f2d701f0e574dd0be8e7 |
17-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
This checking is part one of trying to add some threading safety to our internals. The first part of this is to use a new class: lldb_private::ExecutionContextRef This class holds onto weak pointers to the target, process, thread and frame and it also contains the thread ID and frame Stack ID in case the thread and frame objects go away and come back as new objects that represent the same logical thread/frame. ExecutionContextRef objcets have accessors to access shared pointers for the target, process, thread and frame which might return NULL if the backing object is no longer available. This allows for references to persistent program state without needing to hold a shared pointer to each object and potentially keeping that object around for longer than it needs to be. You can also "Lock" and ExecutionContextRef (which contains weak pointers) object into an ExecutionContext (which contains strong, or shared pointers) with code like ExecutionContext exe_ctx (my_obj->GetExectionContextRef().Lock()); git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150801 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
5a15e6927b5b3234fb3e688717297ba6b5dd6ad7 |
16-Feb-2012 |
Jim Ingham <jingham@apple.com> |
Add a general mechanism to wait on the debugger for Broadcasters of a given class/event bit set. Use this to allow the lldb Driver to emit notifications for breakpoint modifications. <rdar://problem/10619974> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150665 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
16376ed044df3ee70fcf69e19f06af01e71a8e9a |
15-Feb-2012 |
Enrico Granata <granata.enrico@gmail.com> |
<rdar://problem/10062621> New public API for handling formatters: creating, deleting, modifying categories, and formatters, and managing type/formatter association. This provides SB classes for each of the main object types involved in providing formatter support: SBTypeCategory SBTypeFilter SBTypeFormat SBTypeSummary SBTypeSynthetic plus, an SBTypeNameSpecifier class that is used on the public API layer to abstract the notion that formatters can be applied to plain type-names as well as to regular expressions For naming consistency, this patch also renames a lot of formatters-related classes. Plus, the changes in how flags are handled that started with summaries is now extended to other classes as well. A new enum (lldb::eTypeOption) is meant to support this on the public side. The patch also adds several new calls to the formatter infrastructure that are used to implement by-index accessing and several other design changes required to accommodate the new API layer. An architectural change is introduced in that backing objects for formatters now become writable. On the public API layer, CoW is implemented to prevent unwanted propagation of changes. Lastly, there are some modifications in how the "default" category is constructed and managed in relation to other categories. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150558 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
42404d284b22750851b26ae9a4ab42101f673089 |
08-Feb-2012 |
Johnny Chen <johnny.chen@apple.com> |
After discussions with Jim and Greg, modify the 'watchpoint set' command to become a mutiword command with subcommand 'expression' and 'variable'. The first subcommand is for supplying an expression to be evaluated into an address to watch for, while the second is for watching a variable. 'watchpoint set expression' is a raw command, which means that you need to use the "--" option terminator to end the '-w' or '-x' option processing and to start typing your expression. Also update several test cases to comply and add a couple of test cases into TestCompletion.py, in particular, test that 'watchpoint set ex' completes to 'watchpoint set expression ' and that 'watchpoint set var' completes to 'watchpoint set variable '. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150109 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupWatchpoint.cpp
|
6183fccd61b67e814d9e7e85b25516a28edfe864 |
08-Feb-2012 |
Johnny Chen <johnny.chen@apple.com> |
Refine the 'watchpoint set' command to now require either the '-v' option (for watching of a variable) or the '-e' option (for watching of an address) to be present. Update some existing test cases with the required option and add some more test cases. Since the '-v' option takes <variable-name> and the '-e' option takes <expr> as the command arg, the existing infrastructure for generating the option usage can produce confusing help message, like: watchpoint set -e [-w <watch-type>] [-x <byte-size>] <variable-name | expr> watchpoint set -v [-w <watch-type>] [-x <byte-size>] <variable-name | expr> The solution adopted is to provide an extra member field to the struct CommandArgumentData called (uint32_t)arg_opt_set_association, whose purpose is to link this particular argument data with some option set(s). Also modify the signature of CommandObject::GetFormattedCommandArguments() to: GetFormattedCommandArguments (Stream &str, uint32_t opt_set_mask = LLDB_OPT_SET_ALL) it now takes an additional opt_set_mask which can be used to generate a filtered formatted command args for help message. Options::GenerateOptionUsage() impl is modified to call the GetFormattedCommandArguments() appropriately. So that the help message now looks like: watchpoint set -e [-w <watch-type>] [-x <byte-size>] <expr> watchpoint set -v [-w <watch-type>] [-x <byte-size>] <variable-name> rdar://problem/10703256 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150032 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
ptionGroupWatchpoint.cpp
ptions.cpp
|
3eeaf6e715784499520885535236ccff1ba56d1c |
03-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Added support to SBType for getting template arguments from a SBType: uint32_t SBType::GetNumberOfTemplateArguments (); lldb::SBType SBType::GetTemplateArgumentType (uint32_t idx); lldb::TemplateArgumentKind SBType::GetTemplateArgumentKind (uint32_t idx); Some lldb::TemplateArgumentKind values don't have a corresponding SBType that will be returned from SBType::GetTemplateArgumentType(). This will help our data formatters do their job by being able to find out the type of template params and do smart things with those. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149658 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
b302dffacdadeef509d28133a4c66299418122f8 |
01-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Added many more python convenience accessors: You can now access a frame in a thread using: lldb.SBThread.frame[int] -> lldb.SBFrame object for a frame in a thread Where "int" is an integer index. You can also access a list object with all of the frames using: lldb.SBThread.frames => list() of lldb.SBFrame objects All SB objects that give out SBAddress objects have properties named "addr" lldb.SBInstructionList now has the following convenience accessors for len() and instruction access using an index: insts = lldb.frame.function.instructions for idx in range(len(insts)): print insts[idx] Instruction lists can also lookup an isntruction using a lldb.SBAddress as the key: pc_inst = lldb.frame.function.instructions[lldb.frame.addr] lldb.SBProcess now exposes: lldb.SBProcess.is_alive => BOOL Check if a process is exists and is alive lldb.SBProcess.is_running => BOOL check if a process is running (or stepping): lldb.SBProcess.is_running => BOOL check if a process is currently stopped or crashed: lldb.SBProcess.thread[int] => lldb.SBThreads for a given "int" zero based index lldb.SBProcess.threads => list() containing all lldb.SBThread objects in a process SBInstruction now exposes: lldb.SBInstruction.mnemonic => python string for instruction mnemonic lldb.SBInstruction.operands => python string for instruction operands lldb.SBInstruction.command => python string for instruction comment SBModule now exposes: lldb.SBModule.uuid => uuid.UUID(), an UUID object from the "uuid" python module lldb.SBModule.symbol[int] => lldb.Symbol, lookup symbol by zero based index lldb.SBModule.symbol[str] => list() of lldb.Symbol objects that match "str" lldb.SBModule.symbol[re] => list() of lldb.Symbol objecxts that match the regex lldb.SBModule.symbols => list() of all symbols in a module SBAddress objects can now access the current load address with the "lldb.SBAddress.load_addr" property. The current "lldb.target" will be used to try and resolve the load address. Load addresses can also be set using this accessor: addr = lldb.SBAddress() addd.load_addr = 0x123023 Then you can check the section and offset to see if the address got resolved. SBTarget now exposes: lldb.SBTarget.module[int] => lldb.SBModule from zero based module index lldb.SBTarget.module[str] => lldb.SBModule by basename or fullpath or uuid string lldb.SBTarget.module[uuid.UUID()] => lldb.SBModule whose UUID matches lldb.SBTarget.module[re] => list() of lldb.SBModule objects that match the regex lldb.SBTarget.modules => list() of all lldb.SBModule objects in the target SBSymbol now exposes: lldb.SBSymbol.name => python string for demangled symbol name lldb.SBSymbol.mangled => python string for mangled symbol name or None if there is none lldb.SBSymbol.type => lldb.eSymbolType enum value lldb.SBSymbol.addr => SBAddress object that represents the start address for this symbol (if there is one) lldb.SBSymbol.end_addr => SBAddress for the end address of the symbol (if there is one) lldb.SBSymbol.prologue_size => pythin int containing The size of the prologue in bytes lldb.SBSymbol.instructions => SBInstructionList containing all instructions for this symbol SBFunction now also has these new properties in addition to what is already has: lldb.SBFunction.addr => SBAddress object that represents the start address for this function lldb.SBFunction.end_addr => SBAddress for the end address of the function lldb.SBFunction.instructions => SBInstructionList containing all instructions for this function SBFrame now exposes the SBAddress for the frame: lldb.SBFrame.addr => SBAddress which is the section offset address for the current frame PC These are all in addition to what was already added. Documentation and website updates coming soon. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149489 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
b8dc733bd264edb688129dcc3103fb5ba4c9f060 |
31-Jan-2012 |
Enrico Granata <granata.enrico@gmail.com> |
This commit provides a new default summary for Objective-C boolean variables, which shows YES or NO instead of the character value. A new category named objc is added to contain this summary provider. Any future Objective-C related formatters would probably fit here git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149388 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
13d24fb1817faa7ccc4cfd799113ba1a2b8968eb |
29-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
Switching back to using std::tr1::shared_ptr. We originally switched away due to RTTI worries since llvm and clang don't use RTTI, but I was able to switch back with no issues as far as I can tell. Once the RTTI issue wasn't an issue, we were looking for a way to properly track weak pointers to objects to solve some of the threading issues we have been running into which naturally led us back to std::tr1::weak_ptr. We also wanted the ability to make a shared pointer from just a pointer, which is also easily solved using the std::tr1::enable_shared_from_this class. The main reason for this move back is so we can start properly having weak references to objects. Currently a lldb_private::Thread class has a refrence to its parent lldb_private::Process. This doesn't work well when we now hand out a SBThread object that contains a shared pointer to a lldb_private::Thread as this SBThread can be held onto by external clients and if they end up using one of these objects we can easily crash. So the next task is to start adopting std::tr1::weak_ptr where ever it makes sense which we can do with lldb_private::Debugger, lldb_private::Target, lldb_private::Process, lldb_private::Thread, lldb_private::StackFrame, and many more objects now that they are no longer using intrusive ref counted pointer objects (you can't do std::tr1::weak_ptr functionality with intrusive pointers). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149207 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreterPython.cpp
|
2fecc452345ce3162cea879ae816bf99e56239df |
28-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
Stop running so many individual commands when going into the script interpreter. All of the commands now get globbed into a single line. lldb.target, lldb.process, lldb.thread and lldb.frame now get initialized with empty SBTarget, SBProcess, SBThread and SBFrame objects when they don't contain anything. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149166 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
177bc682e2b45354e8b0753e705dc84255c42173 |
27-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10750012> Remove a pseudo terminal master open and slave file descriptor that was being used for pythong stdin. It was not hooked up correctly and was causing file descriptor leaks. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149098 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
8042eedf450752196b1ae347400f6a0bb9a2c729 |
20-Jan-2012 |
Johnny Chen <johnny.chen@apple.com> |
Add comment describing the interaction of WantsRawCommandString()/WantsCompletion() with the completion mechanism. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148521 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
120d94de65fd5979f885768c8ddeada63897c9ba |
19-Jan-2012 |
Johnny Chen <johnny.chen@apple.com> |
rdar://problem/10724187 http://llvm.org/viewvc/llvm-project?rev=148491&view=rev check in broke the argument completion for "settings set th", followed by TAB. Provide a way for commands who want raw commands to hook into the completion mechanism. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148500 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
a1b0ce1323ad4f3448c3c947fca9934a8a0ee41b |
19-Jan-2012 |
Johnny Chen <johnny.chen@apple.com> |
rdar://problem/10712130 Fixed an issue where backtick char is not properly honored when setting the frame-format variable, like the following: (lldb) settings set frame-format frame #${frame.index}: ${frame.pc}{ ${module.file.basename}{`${function.name-with-args}${function.pc-offset}}}{ at ${line.file.basename}:${line.number}}\n (lldb) settings show frame-format frame-format (string) = "frame #${frame.index}: ${frame.pc}{ `${module.file.basename}{${function.name-with-args}${function.pc-offset}}}{` at ${line.file.basename}:${line.number}}\n" (lldb) o CommandObjectSettings.h/.cpp: Modify the command object impl to require raw command string instead of parsed command string, which also fixes an outstanding issue that customizing the prompt with trailing spaces doesn't work. o Args.cpp: During CommandInterpreter::HandleCommand(), there is a PreprocessCommand phase which already strips/processes pairs of backticks as an expression eval step. There's no need to treat a backtick as starting a quote. o TestAbbreviations.py and change_prompt.lldb: Fixed incorrect test case/logic. o TestSettings.py: Remove expectedFailure decorator. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148491 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
a1cec247942a0e744e0b8f969b11332a1b3174ba |
06-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10649734> Fixed an issue where the python interpreter could deadlock LLDB. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@147640 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
9798d7b0999b189d9ba64c4f1c9c635bdfda9a7b |
04-Jan-2012 |
Sean Callanan <scallanan@apple.com> |
Fixed the help text for raw commands like "expr" to include -- in sample command lines. Now LLDB prints expression [-f <format>] -- <expr> instead of expression [-f <format>] <expr> and also adds a new example line: expression <expr> to show that in the absense of arguments the -- can be ommitted. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@147540 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
ptions.cpp
|
daa6efe771f5f068e29328a774fa5bf2358ce14a |
21-Dec-2011 |
Sean Callanan <scallanan@apple.com> |
The "desired result type" code in the expression parser has hitherto been an implementation waiting for a use. I have now tied the '-o' option for the expression command -- which indicates that the result is an Objective-C object and needs to be printed -- to the ExpressionParser, which communicates the desired type to Clang. Now, if the result of an expression is determined by an Objective-C method call for which there is no type information, that result is implicitly cast to id if and only if the -o option is passed to the expression command. (Otherwise if there is no explicit cast Clang will issue an error. This behavior is identical to what happened before r146756.) Also added a testcase for -o enabled and disabled. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@147099 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c82670a8876d9b78a3f967a2eef054c8c0bce237 |
19-Dec-2011 |
Johnny Chen <johnny.chen@apple.com> |
Work in progress for: rdar://problem/10577182 Audit lldb API impl for places where we need to perform a NULL check Add NULL checks for SBCommandReturnObject.AppendMessage(). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146911 91177308-0d34-0410-b5e6-96231b3b80d8
ommandReturnObject.cpp
|
59355253c2bae819c040892add4d4575c59b4cf7 |
02-Dec-2011 |
Jim Ingham <jingham@apple.com> |
"f" should be an alias for "frame select" not "finish" to match the gdb usage. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@145660 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
2618380b9a53dbc47a2b0c837ae09438bba72462 |
17-Nov-2011 |
Jim Ingham <jingham@apple.com> |
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144874 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
527154d8e532f27f25af226c9e1dac607c48b5d1 |
15-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
Added a new class to Process.h: ProcessAttachInfo. This class contains enough info for us to attach by pid, or by name and will also allow us to eventually do a lot more powerful attaches. If you look at the options for the "platform process list" command, there are many options which we should be able to specify. This will allow us to do things like "attach to a process named 'tcsh' that has a parent process ID of 123", or "attach to a process named 'x' which has an effective user ID of 345". I finished up the --shell implementation so that it can be used without the --tty option in "process launch". The "--shell" option now can take an optional argument which is the path to the shell to use (or a partial name like "sh" which we will find using the current PATH environment variable). Modified the Process::Attach to use the new ProcessAttachInfo as the sole argument and centralized a lot of code that was in the "process attach" Execute function so that everyone can take advantage of the powerful new attach functionality. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144615 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandReturnObject.cpp
|
36fe99155b969cfef8538e026394defabf5f4c23 |
14-Nov-2011 |
Jim Ingham <jingham@apple.com> |
Confirm should accept both "Y" and "y" in case somebody confuses the "default answer" indicator for a directive to enter a capital letter. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144562 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
0731d2cb370d4550071221bce2fbe6011dda15ce |
10-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
Removed debug printf statements. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144257 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
3840cd75026758963e340ea3db65281759936a7a |
10-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10374840> Fixed an issue with the gdb format stuff for any aliases that expand to contain a "--". git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144240 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
6010acef0cee54e044d4e7e472ef3d99e13c5045 |
07-Nov-2011 |
Enrico Granata <granata.enrico@gmail.com> |
this patch addresses several issues with "command script" subcommands: a) adds a new --synchronicity (-s) setting for "command script add" that allows the user to decide if scripted commands should run synchronously or asynchronously (which can make a difference in how events are handled) b) clears up several error messages c) adds a new --allow-reload (-r) setting for "command script import" that allows the user to reload a module even if it has already been imported before d) allows filename completion for "command script import" (much like what happens for "target create") e) prevents "command script add" from replacing built-in commands with scripted commands f) changes AddUserCommand() to take an std::string instead of a const char* (for performance reasons) plus, it fixes an issue in "type summary add" command handling which caused several test suite errors git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144035 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
criptInterpreterPython.cpp
|
3e4238d47a6d1a3106f357d2e7b495870721c7ae |
04-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed the Xcode project building of LLVM to be a bit more user friendly: - If you download and build the sources in the Xcode project, x86_64 builds by default using the "llvm.zip" checkpointed LLVM. - If you delete the "lldb/llvm.zip" and the "lldb/llvm" folder, and build the Xcode project will download the right LLVM sources and build them from scratch - If you have a "lldb/llvm" folder already that contains a "lldb/llvm/lib" directory, we will use the sources you have placed in the LLDB directory. Python can now be disabled for platforms that don't support it. Changed the way the libllvmclang.a files get used. They now all get built into arch specific directories and never get merged into universal binaries as this was causing issues where you would have to go and delete the file if you wanted to build an extra architecture slice. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143678 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreter.cpp
criptInterpreterPython.cpp
|
36bc5ea5a48c19421d44f559e2165c105657b809 |
03-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
Modified all Process::Launch() calls to use a ProcessLaunchInfo structure on internal only (public API hasn't changed) to simplify the paramter list to the launch calls down into just one argument. Also all of the argument, envronment and stdio things are now handled in a much more centralized fashion. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143656 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
b51693999473f5dc7cb9681bbbc4a65028eea35b |
01-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed some warnings after enabling some stricter warnings in the Xcode project settings. Also fixed an issue where we weren't creating anonymous namepaces correctly: <rdar://problem/10371295> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143403 91177308-0d34-0410-b5e6-96231b3b80d8
ptions.cpp
|
c6ba5542d85697c33c4199e032503f98cab1e6da |
31-Oct-2011 |
Daniel Dunbar <daniel@zuster.org> |
build: Fix SWIG include paths on Darwin. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143390 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
8ca450b8718d326a93a53a8a3808f8bba0a2aa7e |
31-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
Revert 143359 and modify the test case to not include non-valid c identifier character. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143372 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
bec418056ec25c2fd75a361e0e98fa5534e13aae |
31-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
Fix the r143266 check-in which broke TestCommandRegex.py. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143359 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
d8a218d998d0dd805a8e4ec7bbaa9aeb229590cc |
29-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed the "expression" command when it comes to using it with the new GDB format command suffix: (lldb) expression/x 3+3 Since "expression" is a raw command that has options, we need to make sure the command gets its options properly terminated with a "--". Also fixed an issue where if you try to use the GDB command suffix on a command that doesn't support the "--gdb-format" command, it will report an appropriate error. For the fix above, you can query an lldb_private::Options object to see if it supports a long option by name. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@143266 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ptions.cpp
|
b09f8479229d034c63ba8670f0507466141d61b8 |
29-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
Get a dummy target to allow for calculator mode while processing backticks. This also helps break the infinite loop caused when target is null. So that we can have: $ /Volumes/data/lldb/svn/trunk/build/Debug/lldb (lldb) itob `0x123 - 0x321` 32 v 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0] (lldb) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@143260 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
3ec8bb74de508012e3188544d104e3cb0487dc03 |
29-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed the GDB format to allow the size and format characters to come in any order. Also hooked up the new formats for instruction, hex float and address to the new formats. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@143251 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupFormat.cpp
|
7268b4c8a444a59d42f4d765bd7292e62f41a651 |
28-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to have GDB formats appended to any command so you can do things like: (lldb) x/32xb 0x1000 "x" is an alias to "memory read", so this will actually turn into: (lldb) memory read --gdb-format=32xb 0x1000 This applies to all commands, so the GDB formats will work with "register read", "frame variable", "target variable" and others. All commands that can accept formats, counts and sizes have been modified to support the "--gdb-format" option. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@143230 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
24a6bd9835ed1655984397b0cdf35127e47681e9 |
27-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Added support for the new ".apple_objc" accelerator tables. These tables are in the same hashed format as the ".apple_names", but they map objective C class names to all of the methods and class functions. We need to do this because in the DWARF the methods for Objective C are never contained in the class definition, they are scattered about at the translation unit level and they don't even have attributes that say the are contained within the class itself. Added 3 new formats which can be used to display data: eFormatAddressInfo eFormatHexFloat eFormatInstruction eFormatAddressInfo describes an address such as function+offset and file+line, or symbol + offset, or constant data (c string, 2, 4, 8, or 16 byte constants). The format character for this is "A", the long format is "address". eFormatHexFloat will print out the hex float format that compilers tend to use. The format character for this is "X", the long format is "hex float". eFormatInstruction will print out disassembly with bytes and it will use the current target's architecture. The format character for this is "i" (which used to be being used for the integer format, but the integer format also has "d", so we gave the "i" format to disassembly), the long format is "instruction". Mate the lldb::FormatterChoiceCriterion enumeration private as it should have been from the start. It is very specialized and doesn't belong in the public API. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@143114 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupFormat.cpp
|
966096b3b9c4d27f03adcc73eddb17cdb796ad0c |
26-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Update the GDB format text to be a bit more clear. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@143043 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
902b5beee960a8861867f06588c12ac6eb55eb9d |
26-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
A simple fix for the GDB format strings so the byte size parameter gets properly marked as valid. Also modified the "memory read" command to be able to intelligently repeat subsequent memory requests, so now you can do: (lldb) memory read --format hex --count 32 0x1000 Then hit enter to keep viewing the memory that follows the last valid request. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@143015 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupFormat.cpp
ptionGroupValueObjectDisplay.cpp
|
9c236733d43e6250c8a5671a438f4a2afeb9c0b2 |
26-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Cleaned up many error codes. For any who is filling in error strings into lldb_private::Error objects the rules are: - short strings that don't start with a capitol letter unless the name is a class or anything else that is always capitolized - no trailing newline character - should be one line if possible Implemented a first pass at adding "--gdb-format" support to anything that accepts format with optional size/count. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142999 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandObject.cpp
amedOptionValue.cpp
ptionGroupArchitecture.cpp
ptionGroupFormat.cpp
ptionGroupOutputFile.cpp
ptionGroupPlatform.cpp
ptionGroupUUID.cpp
ptionGroupValueObjectDisplay.cpp
ptionGroupVariable.cpp
ptionGroupWatchpoint.cpp
|
a42880a8e464a3e4f93951ae797313e5e38cdcd3 |
25-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Updated all commands that use a "--format" / "-f" options to use the new OptionGroupFormat. Updated OptionGroupFormat to be able to also use the "--size" and "--count" options. Commands that use a OptionGroupFormat instance can choose which of the options they want by initializing OptionGroupFormat accordingly. Clients can either get only the "--format", "--format" + "--size", or "--format" + "--size" + "--count". This is in preparation for upcoming chnages where there are alternate ways (GDB format specification) to set a format. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142911 91177308-0d34-0410-b5e6-96231b3b80d8
amedOptionValue.cpp
ptionGroupFormat.cpp
ptionGroupVariable.cpp
|
3f2ec9b8ff3a7bfa8ece0b23334c1ed3b9d9ad08 |
25-Oct-2011 |
Jason Molenda <jmolenda@apple.com> |
Prefix display/undisplay regexp command alises with "_regexp" as per the style of the other regexp command aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142902 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
9d855c667f8006ffcfd20dc8858fea6a0308b411 |
25-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Simplified the CommandInterpreter::StripFirstWord logic by making it a static function and having it not require both a bool and a quote char to fill in. We intend to get rid of this functionality when we rewrite the command interpreter for streams eventually, but not for now. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142888 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
9d1acc179e28cf2625e66c411fb164303b6e4e4e |
24-Oct-2011 |
Jim Ingham <jingham@apple.com> |
Add "di" and "dis" aliases to "disassemble" so they will win over "display". git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142834 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
fa1f617779902cabfcce11abf07a857b85880f41 |
24-Oct-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Decoupling of lock-related code from the core of ScriptInterpreterPython. All that concerns locking the Python interpreter is now delegated to the internal ScriptInterpreterPython::Locker class. Several changes in ScriptInterpreterPython to accommodate this new pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142802 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
c28bbdb17a0826eb2f84cf2debb059f560c7d39b |
23-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move Python.h includes out of the headers into the .cpp file where it's actually used. Python.h includes a ton of macros that can cause weird behavior down the road. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142754 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
730cae073aef3b44b9d6f420ea3bb0a6e0b1f020 |
22-Oct-2011 |
Jason Molenda <jmolenda@apple.com> |
Add "display" and "undisplay" aliases for target stop-hook add/delete. A patina of gdb's "display" command, intended mostly for simply monitoring a variable as you step through source code. Formatters do not work, e.g. display/x $pc does not work. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142710 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
47eb00e8fe39de83a04178c7d798b9ce7e0804e7 |
22-Oct-2011 |
Jason Molenda <jmolenda@apple.com> |
Add "stepi" as an alias for thread step-inst in addition to "si". Add "nexti" an "ni" as aliases for thread step-inst-over. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142707 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
444e35b5fdf15a25a427285650f06f1390e62c75 |
19-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Moved lldb::user_id_t values to be 64 bit. This was going to be needed for process IDs, and thread IDs, but was mainly needed for for the UserID's for Types so that DWARF with debug map can work flawlessly. With DWARF in .o files the type ID was the DIE offset in the DWARF for the .o file which is not unique across all .o files, so now the SymbolFileDWARFDebugMap class will make the .o file index part (the high 32 bits) of the unique type identifier so it can uniquely identify the types. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142534 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
e5696bd14c09cda6a1d40d97e87b089b83ef31ff |
18-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
Remove stale comment. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142392 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupWatchpoint.cpp
|
5a5c4a83c1e873dcd82c01e8d40c0840f436d627 |
18-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
Modify the help text for watching a variable or its pointee. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142391 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupWatchpoint.cpp
|
59df36f99b76e33852e6848a162f5c2851074ea2 |
17-Oct-2011 |
Enrico Granata <granata.enrico@gmail.com> |
this patch introduces a new command script import command which takes as input a filename for a Python script and imports the module contained in that file. the containing directory is added to the Python path such that dependencies are honored. also, the module may contain an __lldb_init_module(debugger,dict) function, which gets called after importing, and which can somehow initialize the module's interaction with lldb git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142283 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
f5c0c72346eb8137107dbee95b12efb700117c13 |
14-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to run expressions in any command. Expressions can be inserted in commands by using backticks: (lldb) memory read `$rsp-16` `$rsp+16` (lldb) memory read -c `(int)strlen(argv[0])` `argv[0]` The result of the expression will be inserted into the command as a sort of preprocess stage where this gets done first. We might need to tweak where this preprocess stage goes, but it is very functional already. Added ansi color support to the Debugger::FormatPrompt() so you can use things like "${ansi.fg.blue}" and "${ansi.bold}" many more. This helps in adding colors to your prompts without needing to know the ANSI color code strings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141948 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
61aca5dd78f07de66e997d41af521ab9d8c16b89 |
07-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Re-organized the contents of RangeMap.h to be more concise and also allow for a Range, RangeArray, RangeData (range + data), or a RangeDataArray. We have many range implementations in LLDB and I will be converting over to using the classes in RangeMap.h so we can have one set of code that does ranges and searching of ranges. Fixed up DWARFDebugAranges to use the new range classes. Fixed the enumeration parsing to take a lldb_private::Error to avoid a lot of duplicated code. Now when an invalid enumeration is supplied, an error will be returned and that error will contain a list of the valid enumeration values. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141382 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ptionGroupValueObjectDisplay.cpp
ptionGroupWatchpoint.cpp
|
8bdf57cfc246358ab65b2d36ec2b8462e8d36e54 |
05-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
Fix a problem where the stop-hook command 'frame variable g_val' produces nothing when newly created threads were subsequently stopped due to breakpoint hit. The stop-hook mechanism delegates to CommandInterpreter::HandleCommands() to execuet the commands. Make sure the execution context is switched only once at the beginning of HandleCommands() only and don't update the context while looping on each individual command to be executed. rdar://problem/10228156 git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141144 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
1b4525213621b2179f0841edd54842eebecd28cd |
30-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add an accompanying option to the 'frame variable -w' command to, instead of watching the variable, watch the location pointed to by the variable. An example, (lldb) frame variable -w write -x 1 -g g_char_ptr (char *) g_char_ptr = 0x0000000100100860 ""... Watchpoint created: WatchpointLocation 1: addr = 0x100100860 size = 1 state = enabled type = w declare @ '/Volumes/data/lldb/svn/trunk/test/functionalities/watchpoint/hello_watchlocation/main.cpp:21' ... (lldb) c Process 3936 resuming ... rocess 3936 stopped * thread #2: tid = 0x3403, 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27, stop reason = watchpoint 1 frame #0: 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27 24 do_bad_thing_with_location(char *char_ptr, char new_val) 25 { 26 *char_ptr = new_val; -> 27 } 28 29 uint32_t access_pool (uint32_t flag = 0); 30 (lldb) Also add TestWatchLocation.py test to exercise this functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140836 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupWatchpoint.cpp
|
bb2218f2b3803400299d26a6b96e8e5edc77e385 |
30-Sep-2011 |
Jim Ingham <jingham@apple.com> |
Remember to mark the OptionValueUUID as set in SetOptionValue. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140835 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupUUID.cpp
|
3e8c25f62f92145b6fb699b379cbfe72b1245d4a |
24-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Added to the public API to allow symbolication: - New SBSection objects that are object file sections which can be accessed through the SBModule classes. You can get the number of sections, get a section at index, and find a section by name. - SBSections can contain subsections (first find "__TEXT" on darwin, then us the resulting SBSection to find "__text" sub section). - Set load addresses for a SBSection in the SBTarget interface - Set the load addresses of all SBSection in a SBModule in the SBTarget interface - Add a new module the an existing target in the SBTarget interface - Get a SBSection from a SBAddress object This should get us a lot closer to being able to symbolicate using LLDB through the public API. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140437 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupPlatform.cpp
|
cacedfb1c5db4da1cbbcf6326486ced8174f9b64 |
23-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Watchpoint IDs and ID Ranges are not quite the same as Breakpoint IDs and ID Ranges. Add eArgTypeWatchpointID and eArgTypeWatchpointIDRange to the CommandArgumentType enums and modify the signature of CommandObject::AddIDsArgumentData() from: AddIDsArgumentData(CommandArgumentEntry &arg) to: AddIDsArgumentData(CommandArgumentEntry &arg, CommandArgumentType ID, CommandArgumentType IDRange) to accommodate. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140346 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
01acfa76010b8db2e77016c144963c4dd70f1392 |
22-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add initial implementation of watchpoint commands for list, enable, disable, and delete. Test cases to be added later. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140322 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
567e7f3ba16eb48cb9fd6a2f26f2f7269eb6983c |
22-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Converted the lldb_private::Process over to use the intrusive shared pointers. Changed the ExecutionContext over to use shared pointers for the target, process, thread and frame since these objects can easily go away at any time and any object that was holding onto an ExecutionContext was running the risk of using a bad object. Now that the shared pointers for target, process, thread and frame are just a single pointer (they all use the instrusive shared pointers) the execution context is much safer and still the same size. Made the shared pointers in the the ExecutionContext class protected and made accessors for all of the various ways to get at the pointers, references, and shared pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140298 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
ptionGroupValueObjectDisplay.cpp
criptInterpreterPython.cpp
|
f0734cc92ec144a1980c68f07584074c8d625c49 |
21-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Fix comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140222 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
0576c24a13668fc77109122c5331bd784222f70d |
21-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
A little refactoring of the way to add break IDs or ID ranges as command argument data to the command argument entry. Add a static helper function: CommandObject::AddIDsArgumentData(CommandArgumentEntry &arg) to be used from CommandObjectBreakpoint.cpp. The helper function could also be useful for commands in the future to manipulate watchpoints. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140221 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
e09e254af4db4a27c5f20b3cb74ab65149fff1d4 |
21-Sep-2011 |
Jason Molenda <jmolenda@apple.com> |
One last printf-style call cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140205 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
7e5fa7fc1f8efd24c078e063b2c4b5e13ba5be20 |
20-Sep-2011 |
Jason Molenda <jmolenda@apple.com> |
Update declarations for all functions/methods that accept printf-style stdarg formats to use __attribute__ format so the compiler can flag incorrect uses. Fix all incorrect uses. Most of these are innocuous, a few were resulting in crashes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140185 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
criptInterpreterPython.cpp
|
987c7ebe1daa425ba7abfa9643800e3237146fc0 |
17-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Adopt the intrusive pointers in: lldb_private::Breakpoint lldb_private::BreakpointLocations lldb_private::BreakpointSite lldb_private::Debugger lldb_private::StackFrame lldb_private::Thread lldb_private::Target git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139985 91177308-0d34-0410-b5e6-96231b3b80d8
ptions.cpp
criptInterpreterPython.cpp
|
34bbf85e60949752de9c8272a70d59383e523cc5 |
13-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Watchpoint WIP: o Rename from OptionGroupWatchpoint::WatchMode to OptionGroupWatchpoint::WatchType, and CommandArgumentType::eArgTypeWatchMode to CommandArgumentType::eArgTypeWatchType. Update the sources to reflect the change. o Add a CreateWatchpointLocation() method to Target class, which is currently not implmeneted (returns an empty WatchpointLocationSP object). Add logic to CommandObjectFrame::Execute() to exercise the added API for creating a watchpoint location. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139560 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
ptionGroupWatchpoint.cpp
|
3066b250c109ee52ffa24411793ad1ecfa8ee9ab |
12-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Fix a bug in OptionGroupWatchpoint.cpp where the '-w' option arg parsing result was not checked to effect an early error return. Plus add logic to 'frame variable' command object to check that when watchpoint option is on, only one variable with exact name (no regex) is specified as the sole command arg. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139524 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupWatchpoint.cpp
|
d6edcb5e331a05462340993dd425ba1152edc1fe |
11-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Don't skip the application specific ~/.lldbinit file when the program name is "lldb". So currently when you startup any application and you have not specified that you would like to skip loading init files through the API or from "lldb" options, then LLDB will try and load: "~/.lldbinit-%s" where %s the basename of your program "~/.lldbinit" Then LLDB will load any program specified on the command line and then source the "./.llbinit" file for any temporary debug session specific commands. I want this feature because I have thread and frame formats that do ANSI color codes that I only want to load when running in a terminal which is when I am running the "lldb" command line program. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139476 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
439d0337a6515cb1dfca8843ff7164bbd5f47df1 |
10-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
A little bit of cleanup; set watch_mode to eWatchInvalid at the OptionParsingStarting() lifecycle point. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139467 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupWatchpoint.cpp
|
cfbf7fefda349bccf3eda8d56579cd261c9c8b89 |
10-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Convert OptionGroupVariable.cpp to use the arraysize() template function, as well. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139452 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupVariable.cpp
|
4003f57f86a92411f0563f355a32e8f86ae29d5a |
10-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Refactoring: replace a bunch of static array size computation or hardcoded constant with a template function 'arraysize(static_array)', defined in Utils.h. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139444 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupArchitecture.cpp
ptionGroupFormat.cpp
ptionGroupOutputFile.cpp
ptionGroupPlatform.cpp
ptionGroupUUID.cpp
ptionGroupValueObjectDisplay.cpp
ptionGroupWatchpoint.cpp
|
58dba3ce82715249c068abb7bf99f0d43dfbe8f9 |
10-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add OptionGroupWatchpoint.cpp/.h (preparatory work) for hooking up watchpoint to the 'frame variable' comand. To watch a variable for read/write, issue: frame variable -w read_write Note that '-w' option is not working yet. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139434 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
ptionGroupWatchpoint.cpp
|
1ac6d1f9200a875cc4f761e278d29658599431c0 |
09-Sep-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Adding two new options to the 'help' command: --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 git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139377 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
271568fcd0bc11c7106ceb9173630540b7dfdd52 |
09-Sep-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Fixing an issue with Python commands defined interactively git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139345 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
915448044bac6fdac22a33cc46697dcb771a8df2 |
06-Sep-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Redesign of the interaction between Python and frozen objects: - 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 git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139160 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
criptInterpreterPython.cpp
|
2a19ef97467c45fead838c4ad6d54b2dc69e0334 |
27-Aug-2011 |
Jim Ingham <jingham@apple.com> |
Don't change the host's environment, just append our Python Directory directly to the one in sys. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138693 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
23967773eda67ca32904b15cc80e556dd38266a8 |
25-Aug-2011 |
Johnny Chen <johnny.chen@apple.com> |
Make ThreadList::GetSelectedThread() select and return the 0th thread if there's no currently selected thread. And update the call sites accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138577 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
24c991cab6651b0f87809b033d971e6e5ca19c39 |
25-Aug-2011 |
Jason Molenda <jmolenda@apple.com> |
Include lldb/commands as a valid logging type in the 'log list' output. Remove an extraneous \n from one of the lldb/commands log line. Add an lldb/commands log indicating whether the command was successful or not. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138530 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
0be2e9be82cb20dbf03dac41dd48e376e8fee4cb |
23-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
More cleanups ; Separated implementation of FormatManager from class DataVisualization as a front-end by using separate .h/.cpp files - Final aim is to break up FormatManager.h/cpp into several separate files git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138279 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
|
4dfa5119a5262954d0a09abf567f7332ed6e1ecc |
22-Aug-2011 |
Jim Ingham <jingham@apple.com> |
Don't let Python write its .pyc files, that's not really polite... git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138262 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
960691ff5f194be6c655c6a2aae2000d5a838647 |
22-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
- Support for Python namespaces: If you have a Python module foo, in order to use its contained objects in LLDB you do not need to use 'from foo import *'. You can use 'import foo', and then refer to items in foo as 'foo.bar', and LLDB will know how to resolve bar as a member of foo. Accordingly, GNU libstdc++ formatters have been moved from the global namespace to gnu_libstdcpp and a few test cases are also updated to reflect the new convention. Python docs suggest using a plain 'import' en lieu of 'from-import'. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138244 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
3370f0ce9e2ae2fe1f2adf3628f443053602efa4 |
20-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Fixed some SWIG interoperability issues git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138154 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
13a54a141acd6255e4e11db466951ec1f26aa2f5 |
19-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Taking care of an issue with using lldb_private types in SBCommandInterpreter.cpp ; Making NSString test case work on Snow Leopard ; Removing an unused variable warning git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138105 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
1c61743af946076e988d88baf725382e99d905de |
18-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Second round of code cleanups: - reorganizing classes layout to have public part first Typedefs that we want to keep private, but must be defined for some public code to work correctly are an exception - avoiding methods in the form T foo() { code; } all on one-line - moving method implementations from .h to .cpp whenever feasible Templatized code is an exception and so are very small methods - generally, adhering to coding conventions followed project-wide Functional changes: - fixed an issue where using ${var} in a summary for an aggregate, and then displaying a pointer-to-aggregate would lead to no summary being displayed The issue was not a major one because all ${var} was meant to do in that context was display an error for invalid use of pointer Accordingly fixed test cases and added a new test case git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137944 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
|
f501c5913d5daaf45a906477bdf466bb74ed10fb |
18-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
First round of code cleanups: - all instances of "vobj" have been renamed to "valobj" - class Debugger::Formatting has been renamed to DataVisualization (defined in FormatManager.h/cpp) The interface to this class has not changed - FormatCategory now uses ConstString's as keys to the navigators instead of repeatedly casting from ConstString to const char* and back all the time Next step is making the same happen for categories themselves - category gnu-libstdc++ is defined in the constructor for a FormatManager The source code for it is defined in gnu_libstdcpp.py, drawn from examples/synthetic at compile time All references to previous 'osxcpp' name have been removed from both code and file names Functional changes: - the name of the option to use a summary string for 'type summary add' has changed from the previous --format-string to the new --summary-string. It is expected that the short option will change from -f to -s, and -s for --python-script will become -o git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137886 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
criptInterpreterPython.cpp
|
074e3b6c2eac1438a85e464796cbc19b4354d5ad |
17-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
New category "gnu-libstdc++" provides summary for std::string and synthetic children for types std::map, std::list and std::vector The category is enabled by default. If you run into issues with it, disable it and the previous behavior of LLDB is restored ** This is a temporary solution. The general solution to having formatters pulled in at startup should involve going through the Platform. Fixed an issue in type synthetic list where a category with synthetic providers in it was not shown if all the providers were regex-based git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137850 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
e5e34cb15f031237004b05abfa623c71f879f6c0 |
17-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
When defining a scripted command, it is possible to provide a docstring and that will be used as the help text for the command If no docstring is provided, a default help text is created LLDB will refuse to create scripted commands if the scripting language is anything but Python Some additional comments in AppleObjCRuntimeV2.cpp to describe the memory layout expected by the dynamic type lookup code git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137801 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
criptInterpreterPython.cpp
|
6b1596d81c34c6efb10ed51a3572d6b145b73f5b |
17-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Changes to Python commands: - They now have an SBCommandReturnObject instead of an SBStream as third argument - The class CommandObjectPythonFunction has been merged into CommandObjectCommands.cpp - The command to manage them is now: command script with subcommands add, list, delete, clear command alias is returned to its previous functionality - Python commands are now part of an user dictionary, instead of being seen as aliases git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137785 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreterPython.cpp
|
c2a2825d787be5459fc55264e55b6020ff62f68a |
16-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Python commands: It is now possible to use 'command alias --python' to define a command name that actually triggers execution of a Python function (e.g. command alias --python foo foo_impl makes a command named 'foo' that runs Python function 'foo_impl') The Python function foo_impl should have as signature: def foo_impl(debugger, args, stream, dict): where debugger is an object wrapping an LLDB SBDebugger args is the command line arguments, as an unparsed Python string stream is an SBStream that represents the standard output dict is an internal utility parameter and should be left untouched The function should return None on no error, or an error string to describe any problems git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137722 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
293a7b335833a009fc8bdcf3ee20e0ed4ae17406 |
15-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
One-line fix for a possible spurious truncation warning git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137640 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
574c3d63822cc7fd52bf6f6a94b6882fec4c8ce9 |
13-Aug-2011 |
Jim Ingham <jingham@apple.com> |
Make ValueObject::SetValueFromCString work correctly. Also change the SourceInitFile to look for .lldb-<APPNAME> and source that preferentially if it exists. Also made the breakpoint site report its address as well as its breakpoint number when it gets hit and can't find any the associated locations (usually because the breakpoint got disabled or deleted programmatically between the time it was hit and reported.) Changed ThreadPlanCallFunction to initialize the ivar m_func in the initializers of the constructor, rather than waiting to initialize till later on in the function. Fixed a bug where if you make an SBError and the ask it Success, it returns false. Fixed ValueObject::ResolveValue so that it resolves a temporary value, rather than overwriting the one in the value object. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137536 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
018921dd162d818e71cf1ac86d03422e88f0a674 |
12-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
*Some more optimizations in usage of ConstString *New setting target.max-children-count gives an upper-bound to the number of child objects that will be displayed at each depth-level This might be a breaking change in some scenarios. To override the new limit you can use the --show-all-children (-A) option to frame variable or increase the limit in your lldbinit file *Command "type synthetic" has been split in two: - "type synthetic" now only handles Python synthetic children providers - the new command "type filter" handles filters Because filters and synthetic providers are both ways to replace the children of a ValueObject, only one can be effective at any given time. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137416 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupValueObjectDisplay.cpp
|
60a7df56b7d67b2fabaf20192bf6c313c36f27e5 |
11-Aug-2011 |
Johnny Chen <johnny.chen@apple.com> |
To silence the static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137329 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
840eb267769b943926bb9fcb527ab91221cf7a07 |
10-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
CFString.py now shows contents in a more NSString-like way (e.g. you get @"Hello" instead of "Hello") new --raw-output (-R) option to frame variable prevents using summaries and synthetic children other future formatting enhancements will be excluded by using the -R option test case enhanced to check that -R works correctly git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137185 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupValueObjectDisplay.cpp
|
979e20d127335143ffc89c2e37ec3a8b717ff22d |
29-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Public API changes: - Completely new implementation of SBType - Various enhancements in several other classes Python synthetic children providers for std::vector<T>, std::list<T> and std::map<K,V>: - these return the actual elements into the container as the children of the container - basic template name parsing that works (hopefully) on both Clang and GCC - find them in examples/synthetic and in the test suite in functionalities/data-formatter/data-formatter-python-synth New summary string token ${svar : - the syntax is just the same as in ${var but this new token lets you read the values coming from the synthetic children provider instead of the actual children - Python providers above provide a synthetic child len that returns the number of elements into the container Full bug fix for the issue in which getting byte size for a non-complete type would crash LLDB Several other fixes, including: - inverted the order of arguments in the ClangASTType constructor - EvaluationPoint now only returns SharedPointer's to Target and Process - the help text for several type subcommands now correctly indicates argument-less options as such git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@136504 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
e89ab7b58d2542f4f42e923fa65ef8984840a90c |
25-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
new flag -P to type synth add lets you type a Python class interactively added a final newline to fooSynthProvider.py new option to automatically save user input in InputReaderEZ checking for NULL pointers in several new places git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135916 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
9ae7cef26612773c6b3422834cec83f0fbb2cf8c |
24-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Python synthetic children: - you can now define a Python class as a synthetic children producer for a type the class must adhere to this "interface": def __init__(self, valobj, dict): def get_child_at_index(self, index): def get_child_index(self, name): then using type synth add -l className typeName (e.g. type synth add -l fooSynthProvider foo) (This is still WIP with lots to be added) A small test case is available also as reference git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135865 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
criptInterpreter.cpp
criptInterpreterPython.cpp
|
e4e3e2c0448bb0c77f8f8a3bbb47b951a481d3d8 |
22-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
when typing a summary string you can use the %S symbol to explicitly indicate that you want the summary to be used to print the target object (e.g. ${var%S}). this might already be the default if your variable is of an aggregate type new feature: synthetic filters. you can restrict the number of children for your variables to only a meaningful subset - the restricted list of children obeys the typical rules (e.g. summaries prevail over children) - one-line summaries show only the filtered (synthetic) children, if you type an expanded summary string, or you use Python scripts, all the real children are accessible - to provide a synthetic children list use the "type synth add" command, as in: type synth add foo_type --child varA --child varB[0] --child varC->packet->flags[1-4] (you can use ., ->, single-item array operator [N] and bitfield operator [N-M]; array slice access is not supported, giving simplified names to expression paths is not supported) - a new -S option to frame variable and target variable lets you override synthetic children and instead show real ones git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135731 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupValueObjectDisplay.cpp
|
7f163b363aeccffeec8eda23bd31e4965abc7226 |
16-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Some descriptive text for the Python script feature: - help type summary add now gives some hints on how to use it frame variable and target variable now have a --no-summary-depth (-Y) option: - simply using -Y without an argument will skip one level of summaries, i.e. your aggregate types will expand their children and display no summary, even if they have one. children will behave normally - using -Y<int>, as in -Y4, -Y7, ..., will skip as many levels of summaries as given by the <int> parameter (obviously, -Y and -Y1 are the same thing). children beneath the given depth level will behave normally -Y0 is the same as omitting the --no-summary-depth parameter entirely This option replaces the defined-but-unimplemented --no-summary git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135336 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupValueObjectDisplay.cpp
|
f7a9b14c2c02d2fa9fad586c19f29d77533fcc09 |
15-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Python summary strings: - you can use a Python script to write a summary string for data-types, in one of three ways: -P option and typing the script a line at a time -s option and passing a one-line Python script -F option and passing the name of a Python function these options all work for the "type summary add" command your Python code (if provided through -P or -s) is wrapped in a function that accepts two parameters: valobj (a ValueObject) and dict (an LLDB internal dictionary object). if you use -F and give a function name, you're expected to define the function on your own and with the right prototype. your function, however defined, must return a Python string - test case for the Python summary feature - a few quirks: Python summaries cannot have names, and cannot use regex as type names both issues will be fixed ASAP major redesign of type summary code: - type summary working with strings and type summary working with Python code are two classes, with a common base class SummaryFormat - SummaryFormat classes now are able to actively format objects rather than just aggregating data - cleaner code to print descriptions for summaries the public API now exports a method to easily navigate a ValueObject hierarchy New InputReaderEZ and PriorityPointerPair classes Several minor fixes and improvements git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135238 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
309c89decd7a62212ed45cb902112fe280ec9c0c |
15-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Fixed a crasher where entering 'help disasm' on the command line would crash lldb. The reasom of the crash is because of a missing entry in the argument table corresponding to eArgTypeUnsignedInteger. Add such entry and modify the call site of the crash to go through a fail-fast API to retrieve the argument table. Add a regression test to TestHelp.py. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135206 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
6247dbee41ec51e9a082df7e86269c0f47f28160 |
12-Jul-2011 |
Jim Ingham <jingham@apple.com> |
Added "command history" command to dump the command history. Also made: (lldb) !<NUM> (lldb) !-<NUM> (lldb) !! work with the history. For added benefit: (lldb) !<NUM><TAB> will insert the command at position <NUM> in the history into the command line to be edited. This is only partial, I still need to sync up editline's history list with the one kept by the interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134955 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
1a102087f54079c25c8827afac6153a44ca535da |
12-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
named summaries: - a new --name option for "type summary add" lets you give a name to a summary - a new --summary option for "frame variable" lets you bind a named summary to one or more variables ${var%s} now works for printing the value of 0-terminated CStrings type format test case now tests for cascading - this is disabled on GCC because GCC may end up stripping typedef chains, basically breaking cascading new design for the FormatNavigator class new template class CleanUp2 meant to support cleanup routines with 1 additional parameter beyond resource handle git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134943 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ptionGroupVariable.cpp
|
8cc3f6977c8401769aab07b19ea84d87c018113b |
09-Jul-2011 |
Jim Ingham <jingham@apple.com> |
Allow reading memory from files before the target has been run. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134780 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
ff78238a2ebc66a683dded02c2f99fba85077d05 |
08-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
final fix for the global constructors issue new GetValueForExpressionPath() method in ValueObject to navigate expression paths in a more bitfield vs slices aware way changes to the varformats.html document (WIP) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134679 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
9ae9fd3992be47dd17d3b78526cf42ddfd5b51af |
07-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Fixed a warning where initializing CommandObject::g_arguments_data[] required global constructors git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134613 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
368f8226b1f75fbb4758748fafcee70f18fc248e |
07-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Centralize the variable display prefs into a new option group class: OptionGroupVariable. It gets initialized with a boolean that indicates if the frame specific options are included so that this can be used in both the "frame variable" and "target variable" commands. Removed the global functionality from the "frame variable" command. Users should switch to using the "target variable" command. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134594 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupVariable.cpp
|
801417e453f8531ac176cd952200587bf15d9ccf |
07-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Added "target variable" command that allows introspection of global variables prior to running your binary. Zero filled sections now get section data correctly filled with zeroes when Target::ReadMemory reads from the object file section data. Added new option groups and option values for file lists. I still need to hook up all of the options to "target variable" to allow more complete introspection by file and shlib. Added the ability for ValueObjectVariable objects to be created with only the target as the execution context. This allows them to be read from the object files through Target::ReadMemory(...). Added a "virtual Module * GetModule()" function to the ValueObject class. By default it will look to the parent variable object and return its module. The module is needed when we have global variables that have file addresses (virtual addresses that are specific to module object files) and in turn allows global variables to be displayed prior to running. Removed all of the unused proxy object support that bit rotted in lldb_private::Value. Replaced a lot of places that used "FileSpec::Compare (lhs, rhs) == 0" code with the more efficient "FileSpec::Equal (lhs, rhs)". Improved logging in GDB remote plug-in. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134579 91177308-0d34-0410-b5e6-96231b3b80d8
amedOptionValue.cpp
ptionGroupFile.cpp
|
1bba6e50d400090eb81efd7ab51957dfcbef06c0 |
07-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
new detailed descriptions for type summary add and type format add some changes to the help system code for better display of long help text -p and -r flags now also work for type format add git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134574 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
|
a9eb8277e616463fcf611abb3a77a5f0831bc1b2 |
02-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Cleanup errors that come out of commands and make sure they all have newlines _only_ in the resulting stream, not in the error objects (lldb_private::Error). lldb_private::Error objects should always just have an error string with no terminating newline characters or periods. Fixed an issue with GDB remote packet detection that could end up deadlocking if a full packet wasn't received in one chunk. Also modified the packet checking function to properly toss one or more bytes when it detects bad data. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134357 91177308-0d34-0410-b5e6-96231b3b80d8
ommandReturnObject.cpp
|
886bc3e5cb48e9660692609a7be69ec15b898bd7 |
02-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
several improvements to "type summary": - type names can now be regular expressions (exact matching is done first, and is faster) - integral (and floating) types can be printed as bitfields, i.e. ${var[low-high]} will extract bits low thru high of the value and print them - array subscripts are supported, both for arrays and for pointers. the syntax is ${*var[low-high]}, or ${*var[]} to print the whole array (the latter only works for statically sized arrays) - summary is now printed by default when a summary string references a variable. if that variable's type has no summary, value is printed instead. to force value, you can use %V as a format specifier - basic support for ObjectiveC: - ObjectiveC inheritance chains are now walked through - %@ can be specified as a summary format, to print the ObjectiveC runtime description for an object - some bug fixes git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134293 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
f4d4fccd073eac131239e0d340970f23503e73c1 |
24-Jun-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
++ cannot be used to increment an enum, so do it another way git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133781 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
3182effd150f2e0381d7c6867236737ac69ad846 |
23-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Centralized all of the format to c-string and to format character code inside the FormatManager class. Modified the format arguments in any commands to be able to use a single character format, or a full format name, or a partial format name if no full format names match. Modified any code that was displaying formats to use the new FormatManager calls so that our help text and errors never get out of date. Modified the display of the "type format list" command to be a bit more human readable by showing the format as a format string rather than the single character format char. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133765 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
amedOptionValue.cpp
|
921fac021ef9f7e5d32de359e67d5ad28fcccc65 |
23-Jun-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Fix header paths git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133755 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
de7f47d0ec55d87b865c39d2f452bfd2ffce9261 |
23-Jun-2011 |
Charles Davis <cdavis@mines.edu> |
Fix typo spotted by Elias Pipping. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133744 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
5c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50 |
23-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Committing type format code for Enrico Granata. This commit adds a new top level command named "type". Currently this command implements three commands: type format add <format> <typename1> [<typename2> ...] type format delete <typename1> [<typename2> ...] type format list [<typename1> [<typename2>] ...] This allows you to specify the default format that will be used to display types when you use "frame variable" or "expression", or the SBValue classes. Examples: // Format uint*_t as hex type format add x uint16_t uint32_t uint64_t // Format intptr_t as a pointer type format add p intptr_t The format characters are the same as "printf" for the most part with many additions. These format character specifiers are also used in many other commands ("frame variable" for one). The current list of format characters include: a - char buffer b - binary B - boolean c - char C - printable char d - signed decimal e - float f - float g - float i - signed decimal I - complex integer o - octal O - OSType p - pointer s - c-string u - unsigned decimal x - hex X - complex float y - bytes Y - bytes with ASCII git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133728 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandInterpreter.cpp
|
0664a57cdc0b01e8f9fe7ac69b5a4511ecec66d8 |
23-Jun-2011 |
Charles Davis <cdavis@mines.edu> |
When installing the Python modules: - Respect DESTDIR. - Use the realpath function on the path before prepending DESTDIR. - Don't depend on liblldb.{so,dylib} being installed already. - Don't put the DESTDIR into the _lldb.so symlink. Patch by Elias Pipping! git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133689 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
cad757cda002ae15db836e8971196441607d3d77 |
23-Jun-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Remove -MT options from SWIG invocation SWIG on Darwin does not support -MT, and it only means that we lose the .d target, which doesn't seem to be used or needed. Pointed out by Charles Davis. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133660 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
eca14c7b52fdd83705787ca354758d7cd93b8894 |
20-Jun-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Add dependency tracking/clean rule to interpreter makefile git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133463 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
14ecb06bf9cd0e31bef025ca36bd09fee9a60e1f |
20-Jun-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Create a _lldb.so symlink in the bin directory This is required to run the test suite without installing. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133459 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
307fa07606d519d427c812802aff5f9727e7047c |
18-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Added a new format for displaying an array of characters: eFormatCharArray This us useful because sometomes you have to show a single character as: 'a' (using eFormatChar) and other times you might have an array of single charcters for display as: 'a' 'b' 'c', and other times you might want to show the contents of buffer of characters that can contain non printable chars: "\0\x22\n123". This also fixes an issue that currently happens when you have a single character C string (const char *a = "a"; or char b[1] = { 'b' };) that was being output as "'a'" incorrectly due to the way the eFormatChar format output worked. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133316 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
604f0d336f0d9390a0405022ef660ae922ef29bf |
17-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Added the notion of an system root for SDKs. This is a directory where all libraries and headers exist. This can be specified using the platform select function: platform select --sysroot /Volumes/remote-root remote-macosx Each platform subclass is free to interpret the sysroot as needed. Expose the new SDK root directory through the SBDebugger class. Fixed an issue with the GDB remote protocol where unimplemented packets were not being handled correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133231 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupPlatform.cpp
|
892fadd1f1001d1082cd2edcf282fee0cba8ac87 |
16-Jun-2011 |
Caroline Tice <ctice@apple.com> |
Add 'batch_mode' to CommandInterpreter. Modify InputReaders to not write output (prompts, instructions,etc.) if the CommandInterpreter is in batch_mode. Also, finish updating InputReaders to write to the asynchronous stream, rather than using the Debugger's output file directly. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133162 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreterPython.cpp
|
84cc16d1ce51a1659d89e13ce42a09c3e3ebad14 |
14-Jun-2011 |
Caroline Tice <ctice@apple.com> |
Add error message; clean up comment. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@132997 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
d4d9283c4382ddb130a91ebf7096e0c81195dccc |
13-Jun-2011 |
Caroline Tice <ctice@apple.com> |
Cleaning up the Python script interpreter: Use the embedded_interpreter.py file rather than keeping it all in a string and compiling the string (easier to maintain, easier to read, remove redundancy). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@132935 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
a54461d8df11c4632d8fa22e68519e055fd3c579 |
03-Jun-2011 |
Caroline Tice <ctice@apple.com> |
Use Py_InitializeEx(0) instead of Py_Initialize, to prevent Python from installing its own signal handlers. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@132492 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
5420ec808df9f0028666c6ff0029e13549ffde00 |
01-Jun-2011 |
Charles Davis <cdavis@mines.edu> |
Fix remaining Python issues leftover from my previous patch. - The Swig post-processing scripts are now run. - edit-swig-python-wrapper-file.py has been modified so it can be run from the Makefile. - The issue that prompted me to pass -classic to swig is fixed by this, so -classic isn't passed anymore. Python shouldn't complain anymore about a missing method 'FindDebuggerByID' on the SBDebugger object whenever lldb is run. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@132383 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
a4bacd451c36ebe52cad0899c86e63578548fb5a |
20-May-2011 |
Charles Davis <cdavis@mines.edu> |
When installing the binary part of the LLDB Python modules, symlink to the installed liblldb instead of the built one. Now Python support won't break if you clean your build directories. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131741 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
f6f0e334490406b3591b1bdb68cf2dcdb09dca8d |
20-May-2011 |
Charles Davis <cdavis@mines.edu> |
Fix typo. Stupid 'n' key... git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131720 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
d4c21f0e25545061dcbaef597531a4796dbe15ef |
20-May-2011 |
Charles Davis <cdavis@mines.edu> |
Some makefile fixes for the Interpreter: - Make the generation of LLDBWrapPython.cpp respect the VERBOSE setting. - Use -classic mode when generating. LLDPWrapPython.cpp #errors out if -classic wasn't set when it was generated with recent Swig. - Install the Python modules. Now we shouldn't get loads of Python errors trying to run LLDB. Last of my build fixes. The LLDB that I built works, except that I can't debug anything with it until debugserver gets built. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131719 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
a0f34698c457091c0d15b8fdfbf638421b1283d4 |
13-May-2011 |
Johnny Chen <johnny.chen@apple.com> |
Headers have been moved to /includes/lldb/Interpreter. This patch reflects this change. Marco Minutoli <mminutoli@gmail.com> git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131306 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupArchitecture.cpp
ptionGroupBoolean.cpp
ptionGroupFile.cpp
ptionGroupFormat.cpp
ptionGroupOutputFile.cpp
ptionGroupUInt64.cpp
ptionGroupUUID.cpp
ptionGroupValueObjectDisplay.cpp
|
649116c40a40319fd627f3543cbe7eaf47869f8d |
11-May-2011 |
Caroline Tice <ctice@apple.com> |
Add ability to recognize/handle quotes around commands (e.g. '"target" create' works as well as 'target create'). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131185 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
5ddbe214153f60f8ab62ba98dea089a21f1779f3 |
06-May-2011 |
Caroline Tice <ctice@apple.com> |
Replace calls to HandleCommand in lldb core with more appropriate direct function calls. As part of this, collect code that processes arguments & options for aliases into a single function. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131020 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
10de7d1db3ec782ea2ccda1f39c0a40b9c301594 |
04-May-2011 |
Jim Ingham <jingham@apple.com> |
Change "frame var" over to using OptionGroups (and thus the OptionGroupVariableObjectDisplay). Change the boolean "use_dynamic" over to a tri-state, no-dynamic, dynamic-w/o running target, and dynamic with running target. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130832 91177308-0d34-0410-b5e6-96231b3b80d8
ptionGroupValueObjectDisplay.cpp
|
e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59 |
04-May-2011 |
Greg Clayton <gclayton@apple.com> |
Added new OptionGroup classes for UInt64, UUID, File and Boolean values. Removed the "image" command and moved it to "target modules". Added an alias for "image" to "target modules". Added some new target commands to be able to add and load modules to a target: (lldb) target modules add <path> (lldb) target modules load [--file <path>] [--slide <offset>] [<sect-name> <sect-load-addr> ...] So you can load individual sections without running a target: (lldb) target modules load --file /usr/lib/libSystem.B.dylib __TEXT 0x7fccc80000 __DATA 0x1234000000 Or you can rigidly slide an entire shared library: (lldb) target modules load --file /usr/lib/libSystem.B.dylib --slid 0x7fccc80000 This should improve bare board debugging when symbol files need to be slid around manually. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130796 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
amedOptionValue.cpp
ptionGroupBoolean.cpp
ptionGroupFile.cpp
ptionGroupPlatform.cpp
ptionGroupUInt64.cpp
ptionGroupUUID.cpp
|
6af65cb2cf60e433b5a4cba7834ed9f8cc175a81 |
03-May-2011 |
Caroline Tice <ctice@apple.com> |
Pre-load the Python script interpreter with the following convenience variables (from the ExecutionContext) each time it is entered: lldb.debugger, lldb.target, lldb.process, lldb.thread, lldb.frame. If a frame (or thread, process, etc) does not currently exist, the variable contains the Python value 'None'. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130792 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
4a348081030cdd2af758fddc869518357d9befd3 |
02-May-2011 |
Caroline Tice <ctice@apple.com> |
This patch captures and serializes all output being written by the command line driver, including the lldb prompt being output by editline, the asynchronous process output & error messages, and asynchronous messages written by target stop-hooks. As part of this it introduces a new Stream class, StreamAsynchronousIO. A StreamAsynchronousIO object is created with a broadcaster, who will eventually broadcast the stream's data for a listener to handle, and an event type indicating what type of event the broadcaster will broadcast. When the Write method is called on a StreamAsynchronousIO object, the data is appended to an internal string. When the Flush method is called on a StreamAsynchronousIO object, it broadcasts it's data string and clears the string. Anything in lldb-core that needs to generate asynchronous output for the end-user should use the StreamAsynchronousIO objects. I have also added a new notification type for InputReaders, to let them know that a asynchronous output has been written. This is to allow the input readers to, for example, refresh their prompts and lines, if desired. I added the case statements to all the input readers to catch this notification, but I haven't added any code for handling them yet (except to the IOChannel input reader). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130721 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreterPython.cpp
|
56bbdaf817cb19a2f133e8501473f499be447c2d |
28-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to specify dumping options (show types, show location, depth control, pointer depth, and more) when dumping memory and viewing as a type. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130436 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
amedOptionValue.cpp
ptionGroupFormat.cpp
ptionGroupValueObjectDisplay.cpp
|
57b3c6b12812b0a7a79f896855c787bd4d893ecb |
28-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Added a new OptionValue subclass for lldb::Format: OptionValueFormat. Added new OptionGroup subclasses for: - output file for use with options: long opts: --outfile <path> --append--output short opts: -o <path> -A - format for use with options: long opts: --format <format> - variable object display controls for depth, pointer depth, wether to show types, show summary, show location, flat output, use objc "po" style summary. Modified ValueObjectMemory to be able to be created either with a TypeSP or a ClangASTType. Switched "memory read" over to use OptionGroup subclasses: one for the outfile options, one for the command specific options, and one for the format. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130334 91177308-0d34-0410-b5e6-96231b3b80d8
amedOptionValue.cpp
ptionGroupArchitecture.cpp
ptionGroupFormat.cpp
ptionGroupOutputFile.cpp
ptionGroupValueObjectDisplay.cpp
ptions.cpp
|
ff44ab42e9f5d8e4d550e11d1b69413e0bc75b71 |
23-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed the SymbolContext::DumpStopContext() to correctly indent and dump 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130044 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
amedOptionValue.cpp
|
91c9dcfd3ff3c3b13276d4ce8ac0488e49721105 |
22-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Erase from a string instead of using substr when you don't really need to. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130013 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
dfb2e20724a90a4a10558ddaee18b72a1c51e499 |
22-Apr-2011 |
Caroline Tice <ctice@apple.com> |
Change code for reading emulation data files to read the new file format. (The newly formatted files will go in as a separate commit in a few minutes). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129981 91177308-0d34-0410-b5e6-96231b3b80d8
amedOptionValue.cpp
|
17cd995147b3324680d845b3fc897febcc23c9e0 |
22-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Did some work on the "register read" command to only show the first register 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129977 91177308-0d34-0410-b5e6-96231b3b80d8
amedOptionValue.cpp
|
c08770b52dceb7d6c11dca89012d08dade902e56 |
21-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
More iteration on the new option value stuff. We now define an OptionValueCollection class that can be subclassed to provide access to internal settings that are stored as ObjectValue subclasses. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129926 91177308-0d34-0410-b5e6-96231b3b80d8
amedOptionValue.cpp
|
e972845ac67027cc80d63c83cf6fcadfe16242e0 |
21-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Made the constructors public for all OptionValue classes so we can instantiate them, and also moved the code that can get the specific subclass for a OptionValue into the OptionValue class. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129920 91177308-0d34-0410-b5e6-96231b3b80d8
amedOptionValue.cpp
|
9e4c3d7e23766be3d65b6637a2a52e455b5fed0a |
21-Apr-2011 |
Johnny Chen <johnny.chen@apple.com> |
Fixed some more 'commands' to 'command' change. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129897 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
d12aeab33bab559e138307f599077da3918a3238 |
20-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability for users to create new regex commands. To do this currently, it must be done in multi-line mode: (lldb) commands regex --help "Help text for command" --syntax "syntax for command" <cmd-name> Any example that would use "f" for "finish" when there are no arguments, and "f <num>" to do a "frame select <num>" would be: (lldb) commands regex f Enter multiple regular expressions in the form s/find/replace/ then terminate with an empty line: s/^$/finish/ s/([0-9]+)/frame select %1/ (lldb) f 11 frame select 12 ... (lldb) f finish ... Also added the string version of the OptionValue as OptionValueString. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129855 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
amedOptionValue.cpp
|
7406c39458db2c7eeb235d2d99bfc4fe6c296b8e |
20-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Added the start of a new option value system that we can use for many things around the debugger. The class isn't hooked into anything yet, but it will be soon. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129843 91177308-0d34-0410-b5e6-96231b3b80d8
amedOptionValue.cpp
|
abe0fed36d83e1c37af9dae90c2d25db742b4515 |
18-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Centralized a lot of the status information for processes, threads, and stack frame down in the lldb_private::Process, lldb_private::Thread, lldb_private::StackFrameList and the lldb_private::StackFrame classes. We had some command line commands that had duplicate versions of the process status output ("thread list" and "process status" for example). Removed the "file" command and placed it where it should have been: "target create". Made an alias for "file" to "target create" so we stay compatible with GDB commands. We can now have multple usable targets in lldb at the same time. This is nice for comparing two runs of a program or debugging more than one binary at the same time. The new command is "target select <target-idx>" and also to see a list of the current targets you can use the new "target list" command. The flow in a debug session can be: (lldb) target create /path/to/exe/a.out (lldb) breakpoint set --name main (lldb) run ... hit breakpoint (lldb) target create /bin/ls (lldb) run /tmp Process 36001 exited with status = 0 (0x00000000) (lldb) target list Current targets: target #0: /tmp/args/a.out ( arch=x86_64-apple-darwin, platform=localhost, pid=35999, state=stopped ) * target #1: /bin/ls ( arch=x86_64-apple-darwin, platform=localhost, pid=36001, state=exited ) (lldb) target select 0 Current targets: * target #0: /tmp/args/a.out ( arch=x86_64-apple-darwin, platform=localhost, pid=35999, state=stopped ) target #1: /bin/ls ( arch=x86_64-apple-darwin, platform=localhost, pid=36001, state=exited ) (lldb) bt * thread #1: tid = 0x2d03, 0x0000000100000b9a a.out`main + 42 at main.c:16, stop reason = breakpoint 1.1 frame #0: 0x0000000100000b9a a.out`main + 42 at main.c:16 frame #1: 0x0000000100000b64 a.out`start + 52 Above we created a target for "a.out" and ran and hit a breakpoint at "main". Then we created a new target for /bin/ls and ran it. Then we listed the targest and selected our original "a.out" program, so we showed two concurent debug sessions going on at the same time. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129695 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ptionGroupArchitecture.cpp
ptionGroupPlatform.cpp
|
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
ommandObject.cpp
ptions.cpp
|
143fcc3a15425659b381502ed4e1e50a3e726f36 |
13-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Added two new classes for command options: lldb_private::OptionGroup lldb_private::OptionGroupOptions OptionGroup lets you define a class that encapsulates settings that you want to reuse in multiple commands. It contains only the option definitions and the ability to set the option values, but it doesn't directly interface with the lldb_private::Options class that is the front end to all of the CommandObject option parsing. For that the OptionGroupOptions class can be used. It aggregates one or more OptionGroup objects and directs the option setting to the appropriate OptionGroup class. For an example of this, take a look at the CommandObjectFile and how it uses its "m_option_group" object shown below to be able to set values in both the FileOptionGroup and PlatformOptionGroup classes. The members used in CommandObjectFile are: OptionGroupOptions m_option_group; FileOptionGroup m_file_options; PlatformOptionGroup m_platform_options; Then in the constructor for CommandObjectFile you can combine the option settings. The code below shows a simplified version of the constructor: CommandObjectFile::CommandObjectFile(CommandInterpreter &interpreter) : CommandObject (...), m_option_group (interpreter), m_file_options (), m_platform_options(true) { m_option_group.Append (&m_file_options); m_option_group.Append (&m_platform_options); m_option_group.Finalize(); } We append the m_file_options and then the m_platform_options and then tell the option group the finalize the results. This allows the m_option_group to become the organizer of our prefs and after option parsing we end up with valid preference settings in both the m_file_options and m_platform_options objects. This also allows any other commands to use the FileOptionGroup and PlatformOptionGroup classes to implement options for their commands. Renamed: virtual void Options::ResetOptionValues(); to: virtual void Options::OptionParsingStarting(); And implemented a new callback named: virtual Error Options::OptionParsingFinished(); This allows Options subclasses to verify that the options all go together after all of the options have been specified and gives the chance for the command object to return an error. It also gives a chance to take all of the option values and produce or initialize objects after all options have completed parsing. Modfied: virtual Error SetOptionValue (int option_idx, const char *option_arg) = 0; to be: virtual Error SetOptionValue (uint32_t option_idx, const char *option_arg) = 0; (option_idx is now unsigned). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129415 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
ptions.cpp
|
b72d0f098e45936fa72e26b1a026c603e17e2d6c |
12-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Moved the execution context that was in the Debugger into the CommandInterpreter where it was always being used. Make sure that Modules can track their object file offsets correctly to allow opening of sub object files (like the "__commpage" on darwin). Modified the Platforms to be able to launch processes. The first part of this move is the platform soon will become the entity that launches your program and when it does, it uses a new ProcessLaunchInfo class which encapsulates all process launching settings. This simplifies the internal APIs needed for launching. I want to slowly phase out process launching from the process classes, so for now we can still launch just as we used to, but eventually the platform is the object that should do the launching. Modified the Host::LaunchProcess in the MacOSX Host.mm to correctly be able to launch processes with all of the new eLaunchFlag settings. Modified any code that was manually launching processes to use the Host::LaunchProcess functions. Fixed an issue where lldb_private::Args had implicitly defined copy constructors that could do the wrong thing. This has now been fixed by adding an appropriate copy constructor and assignment operator. Make sure we don't add empty ModuleSP entries to a module list. Fixed the commpage module creation on MacOSX, but we still need to train the MacOSX dynamic loader to not get rid of it when it doesn't have an entry in the all image infos. Abstracted many more calls from in ProcessGDBRemote down into the GDBRemoteCommunicationClient subclass to make the classes cleaner and more efficient. Fixed the default iOS ARM register context to be correct and also added support for targets that don't support the qThreadStopInfo packet by selecting the current thread (only if needed) and then sending a stop reply packet. Debugserver can now start up with a --unix-socket (-u for short) and can then bind to port zero and send the port it bound to to a listening process on the other end. This allows the GDB remote platform to spawn new GDB server instances (debugserver) to allow platform debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129351 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandInterpreter.cpp
ommandObject.cpp
|
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
ommandObject.cpp
ptions.cpp
|
24bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7 |
30-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Many improvements to the Platform base class and subclasses. The base Platform class now implements the Host functionality for a lot of things that make sense by default so that subclasses can check: int PlatformSubclass::Foo () { if (IsHost()) return Platform::Foo (); // Let the platform base class do the host specific stuff // Platform subclass specific code... int result = ... return result; } Added new functions to the platform: virtual const char *Platform::GetUserName (uint32_t uid); virtual const char *Platform::GetGroupName (uint32_t gid); The user and group names are cached locally so that remote platforms can avoid sending packets multiple times to resolve this information. Added the parent process ID to the ProcessInfo class. Added a new ProcessInfoMatch class which helps us to match processes up and changed the Host layer over to using this new class. The new class allows us to search for processs: 1 - by name (equal to, starts with, ends with, contains, and regex) 2 - by pid 3 - And further check for parent pid == value, uid == value, gid == value, euid == value, egid == value, arch == value, parent == value. This is all hookup up to the "platform process list" command which required adding dumping routines to dump process information. If the Host class implements the process lookup routines, you can now lists processes on your local machine: machine1.foo.com % lldb (lldb) platform process list PID PARENT USER GROUP EFF USER EFF GROUP TRIPLE NAME ====== ====== ========== ========== ========== ========== ======================== ============================ 99538 1 username usergroup username usergroup x86_64-apple-darwin FileMerge 94943 1 username usergroup username usergroup x86_64-apple-darwin mdworker 94852 244 username usergroup username usergroup x86_64-apple-darwin Safari 94727 244 username usergroup username usergroup x86_64-apple-darwin Xcode 92742 92710 username usergroup username usergroup i386-apple-darwin debugserver This of course also works remotely with the lldb-platform: machine1.foo.com % lldb-platform --listen 1234 machine2.foo.com % lldb (lldb) platform create remote-macosx Platform: remote-macosx Connected: no (lldb) platform connect connect://localhost:1444 Platform: remote-macosx Triple: x86_64-apple-darwin OS Version: 10.6.7 (10J869) Kernel: Darwin Kernel Version 10.7.0: Sat Jan 29 15:17:16 PST 2011; root:xnu-1504.9.37~1/RELEASE_I386 Hostname: machine1.foo.com Connected: yes (lldb) platform process list PID PARENT USER GROUP EFF USER EFF GROUP TRIPLE NAME ====== ====== ========== ========== ========== ========== ======================== ============================ 99556 244 username usergroup username usergroup x86_64-apple-darwin trustevaluation 99548 65539 username usergroup username usergroup x86_64-apple-darwin lldb 99538 1 username usergroup username usergroup x86_64-apple-darwin FileMerge 94943 1 username usergroup username usergroup x86_64-apple-darwin mdworker 94852 244 username usergroup username usergroup x86_64-apple-darwin Safari The lldb-platform implements everything with the Host:: layer, so this should "just work" for linux. I will probably be adding more stuff to the Host layer for launching processes and attaching to processes so that this support should eventually just work as well. Modified the target to be able to be created with an architecture that differs from the main executable. This is needed for iOS debugging since we can have an "armv6" binary which can run on an "armv7" machine, so we want to be able to do: % lldb (lldb) platform create remote-ios (lldb) file --arch armv7 a.out Where "a.out" is an armv6 executable. The platform then can correctly decide to open all "armv7" images for all dependent shared libraries. Modified the disassembly to show the current PC value. Example output: (lldb) disassemble --frame a.out`main: 0x1eb7: pushl %ebp 0x1eb8: movl %esp, %ebp 0x1eba: pushl %ebx 0x1ebb: subl $20, %esp 0x1ebe: calll 0x1ec3 ; main + 12 at test.c:18 0x1ec3: popl %ebx -> 0x1ec4: calll 0x1f12 ; getpid 0x1ec9: movl %eax, 4(%esp) 0x1ecd: leal 199(%ebx), %eax 0x1ed3: movl %eax, (%esp) 0x1ed6: calll 0x1f18 ; printf 0x1edb: leal 213(%ebx), %eax 0x1ee1: movl %eax, (%esp) 0x1ee4: calll 0x1f1e ; puts 0x1ee9: calll 0x1f0c ; getchar 0x1eee: movl $20, (%esp) 0x1ef5: calll 0x1e6a ; sleep_loop at test.c:6 0x1efa: movl $12, %eax 0x1eff: addl $20, %esp 0x1f02: popl %ebx 0x1f03: leave 0x1f04: ret This can be handy when dealing with the new --line options that was recently added: (lldb) disassemble --line a.out`main + 13 at test.c:19 18 { -> 19 printf("Process: %i\n\n", getpid()); 20 puts("Press any key to continue..."); getchar(); -> 0x1ec4: calll 0x1f12 ; getpid 0x1ec9: movl %eax, 4(%esp) 0x1ecd: leal 199(%ebx), %eax 0x1ed3: movl %eax, (%esp) 0x1ed6: calll 0x1f18 ; printf Modified the ModuleList to have a lookup based solely on a UUID. Since the UUID is typically the MD5 checksum of a binary image, there is no need to give the path and architecture when searching for a pre-existing image in an image list. Now that we support remote debugging a bit better, our lldb_private::Module needs to be able to track what the original path for file was as the platform knows it, as well as where the file is locally. The module has the two following functions to retrieve both paths: const FileSpec &Module::GetFileSpec () const; const FileSpec &Module::GetPlatformFileSpec () const; git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128563 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
ptions.cpp
|
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
rgs.cpp
ommandInterpreter.cpp
ommandObject.cpp
ptions.cpp
|
15f2d43c4b5c236562f08acddaeb03390e6844cc |
24-Mar-2011 |
Jim Ingham <jingham@apple.com> |
Switch the "print" alias to "expression --". git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128224 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
b5772848dfcbce2d05815d0a5878a6dfe147c9fc |
23-Mar-2011 |
Caroline Tice <ctice@apple.com> |
Add missing cases to switch statements & remove 'default'. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128177 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
6460790b8f11c8d9a365340aeda5f6de1d818295 |
23-Mar-2011 |
Johnny Chen <johnny.chen@apple.com> |
Silence clang warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128167 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
47f07856222a1d2032ecfb346f04836b3660d449 |
23-Mar-2011 |
Stephen Wilson <wilsons@start.ca> |
Eliminate a pile of "type qualifiers ignored on function return type" warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128136 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
e56493f430ba2956e4e8965fd4e573cbf1a48811 |
22-Mar-2011 |
Jim Ingham <jingham@apple.com> |
Add "up" and "down" aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128066 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
e86cbb9ef128db87cf904e330b2edfc15566bacd |
22-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Abtracted the innards of lldb-core away from the SB interface. There was some overlap in the SWIG integration which has now been fixed by introducing callbacks for initializing SWIG for each language (python only right now). There was also a breakpoint command callback that called into SWIG which has been abtracted into a callback to avoid cross over as well. Added a new binary: lldb-platform This will be the start of the remote platform that will use as much of the Host functionality to do its job so it should just work on all platforms. It is pretty hollowed out for now, but soon it will implement a platform using the GDB remote packets as the transport. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128053 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
4fdf7602bedd8be648f3c549074cf13d90a05f03 |
20-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Split all of the core of LLDB.framework/lldb.so into a 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127963 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
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
rgs.cpp
ommandInterpreter.cpp
|
a4fede31869663e889d67ace3d07dc5d3e4ea2b8 |
11-Mar-2011 |
Jim Ingham <jingham@apple.com> |
CommandInterpreter::HandleCommands should take its commands as a "const StringList &" since it doesn't modify it... Also, don't turn on the immediate output in the temporary result, or you'll get doubled output. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127452 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
4a9d790f57955ee0b132e73aaaa08670ea0df1fa |
11-Mar-2011 |
Jim Ingham <jingham@apple.com> |
Fix a few things in the CommandArguments table. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127451 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
8054ba3af111d2644a9b6999e6f1cb4f216cd8b0 |
11-Mar-2011 |
Johnny Chen <johnny.chen@apple.com> |
Minor typo fix and TAB removals. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127439 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
ce207c18f9348340de73a950a46c3f6c6777909f |
11-Mar-2011 |
Caroline Tice <ctice@apple.com> |
Add some explanatory comments. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127438 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
9d352cea11675050eb3b0fa23b2c91affeb6a5ee |
08-Mar-2011 |
Caroline Tice <ctice@apple.com> |
Add thread state initialization to the thread where the interactive interpreter is run (which is separate from the thread where Py_Initialize is called, where this normally gets set up). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127191 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
aa378b1f53f8b557ceab403e31e6c9ef9a20b77d |
20-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Don't limit StreamTee to just two streams. It now can contain N streams by making the stream a vector of stream shared pointers that is protected by a mutex. Streams can be get/set by index which allows indexes to be defined as stream indentifiers. If a stream is set at index 3 and there are now streams in the collection, then empty stream objects are inserted to ensure that stream at index 3 has a valid stream. There is also an append method that allows a stream to be pushed onto the stack. This will allow our streams to be very flexible in where the output goes. Modified the CommandReturnObject to use the new StreamTee functionality. This class now defines two StreamTee indexes: 0 for the stream string stream, and 1 for the immediate stream. This is used both on the output and error streams. Added the ability to get argument types as strings or as descriptions. This is exported through the SBCommandInterpreter API to allow external access. Modified the Driver class to use the newly exported argument names from SBCommandInterpreter::GetArgumentTypeAsCString(). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126067 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
ommandReturnObject.cpp
|
2e8cb8a7342a2ea672792067d712a794e215a3a7 |
19-Feb-2011 |
Jim Ingham <jingham@apple.com> |
- Changed all the places where CommandObjectReturn was exporting a StreamString to just exporting a Stream, and then added GetOutputData & GetErrorData to get the accumulated data. - Added a StreamTee that will tee output to two provided lldb::StreamSP's. - Made the CommandObjectReturn use this so you can Tee the results immediately to the debuggers output file, as well as saving up the results to return when the command is done executing. - HandleCommands now uses this so that if you have a set of commands that continue the target you will see the commands come out as they are processed. - The Driver now uses this to output the command results as you go, which makes the interface more reactive seeming. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126015 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandReturnObject.cpp
|
d284b663aa7d08b4f767de5ffa6289f33fcbcce7 |
18-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Added new target instance settings for execution settings: Targets can now specify some additional parameters for when we debug executables that can help with plug-in selection: target.execution-level = auto | user | kernel target.execution-mode = auto | dynamic | static target.execution-os-type = auto | none | halted | live On some systems, the binaries that are created are the same wether you use them to debug a kernel, or a user space program. Many times inspecting an object file can reveal what an executable should be. For these cases we can now be a little more complete by specifying wether to detect all of these things automatically (inspect the main executable file and select a plug-in accordingly), or manually to force the selection of certain plug-ins. To do this we now allow the specficifation of wether one is debugging a user space program (target.execution-level = user) or a kernel program (target.execution-level = kernel). We can also specify if we want to debug a program where shared libraries are dynamically loaded using a DynamicLoader plug-in (target.execution-mode = dynamic), or wether we will treat all symbol files as already linked at the correct address (target.execution-mode = static). We can also specify if the inferior we are debugging is being debugged on a bare board (target.execution-os-type = none), or debugging an OS where we have a JTAG or other direct connection to the inferior stops the entire OS (target.execution-os-type = halted), or if we are debugging a program on something that has live debug services (target.execution-os-type = live). For the "target.execution-os-type = halted" mode, we will need to create ProcessHelper plug-ins that allow us to extract the process/thread and other OS information by reading/writing memory. This should allow LLDB to be used for a wide variety of debugging tasks and handle them all correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125815 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
949d5acde6684b5824a26034457410cdf3823dfe |
18-Feb-2011 |
Jim Ingham <jingham@apple.com> |
Factor all the code that does "Execute a list of lldb command interpreter commands" into a single function in the Interpreter, and then use that in all the places that used to do this by hand. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125807 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
|
5892856b0cd6591194c669afab5bf9ac19c5b3a0 |
09-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Use Host::File in lldb_private::StreamFile and other places to cleanup host layer a bit more. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125149 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreterPython.cpp
|
5f54ac373b119a4c6693e4875c48aa761fba0c86 |
08-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Moved FileSpec into the Host layer since it will vary from host to host. We have a common unix implementation in lldb/source/Host/common/FileSpec.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125078 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
09c81efd010d1c9ac8821bad00cdfc9747fcae79 |
08-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Patch that allows for thread_t to be something more complex than an integer. Modified patch from Kirk Beitz. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125067 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
0fdd4a0ed890af386d86ee404ffe58e0e2d6020b |
08-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Abtract terminal stuff into a new lldb_private::Terminal class where the implementation is hidden in the host layer. This avoids a slew of "#if LLDB_CONFIG_TERMIOS_SUPPORTED" statements in the code and keeps things cleaner. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125057 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
9a7a94733fc502384aeedacd7717c6573a99b019 |
07-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
More termios fixes. We need to currently make sure to include: #include "lldb/Host/Config.h" Or the LLDB_CONFIG_TERMIOS_SUPPORTED defined won't be set. I will fix all of this Termios stuff later today by moving lldb/Core/TTYState.* into the host layer and then we conditionalize all of this inside TTYState.cpp and then we get rid of LLDB_CONFIG_TERMIOS_SUPPORTED all together. Typically, when we start to see too many "#if LLDB_CONFIG_XXXX" preprocessor directives, this is a good indicator that something needs to be moved over to the host layer. TTYState can be modified to do all of the things that many areas of the code are currently doing, and it will avoid all of the preprocessor noise. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125027 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
99208582d715cc667fe46aa7a997a0deb5a333c1 |
07-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
More termios fixes from Kirk Beitz. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125024 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
17f5afe9ed10bda3efbce0f26cf0c030331f8b15 |
05-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Header patch, virtual dtor patch and missed UUID patch from Kirk Beitz. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124931 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
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
ommandObject.cpp
|
a81c367f67db1b288c2d88c081d5bfc09e487695 |
03-Feb-2011 |
Caroline Tice <ctice@apple.com> |
Fix exit instructions for interactive interpreter, now that ctrl-D works. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124811 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
22a60097d0d8bc92f11224f71ce0954287ceab60 |
02-Feb-2011 |
Caroline Tice <ctice@apple.com> |
Make sure the confirmation input reader calls fflush after writing its output. (<rdar://problem/8946573>) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124711 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
cd548034fa23113e995b8463d14f910ba2f7298c |
01-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Endian patch from Kirk Beitz that allows better cross platform building. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124643 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
7c330d677966431920c92bcf8e2ac7093719cbec |
27-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Added support for some new environment variables within LLDB to enable some extra launch options: LLDB_LAUNCH_FLAG_DISABLE_ASLR disables ASLR for all launched processes LLDB_LAUNCH_FLAG_DISABLE_STDIO will disable STDIO (reroute to "/dev/null") for all launched processes LLDB_LAUNCH_FLAG_LAUNCH_IN_TTY will force all launched processes to be launched in new terminal windows. Also, don't init python if we never create a script interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124341 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
criptInterpreterPython.cpp
|
bdcb6abaa287df2c5f312c51d993c1d0b0cb120c |
26-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Enabled extra warnings and fixed a bunch of small issues. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124250 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
202f6b8715dbff8971ce69bb61cfb8bfc447c24c |
17-Jan-2011 |
Caroline Tice <ctice@apple.com> |
Replace Mutex guarding python interpreter access with Predicate, allowing timeouts & informing the user when the lock is unavailable. Fixed problem where Debugger::Terminate was clearing the debugger list even when the global ref count was greater than zero. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123674 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
b01000fd063629facd45044f137446fb748ee179 |
17-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
A few of the issue I have been trying to track down and fix have been due to the way LLDB lazily gets complete definitions for types within the debug info. When we run across a class/struct/union definition in the DWARF, we will only parse the full definition if we need to. This works fine for top level types that are assigned directly to variables and arguments, but when we have a variable with a class, lets say "A" for this example, that has a member: "B *m_b". Initially we don't need to hunt down a definition for this class unless we are ever asked to do something with it ("expr m_b->getDecl()" for example). With my previous approach to lazy type completion, we would be able to take a "A *a" and get a complete type for it, but we wouldn't be able to then do an "a->m_b->getDecl()" unless we always expanded all types within a class prior to handing out the type. Expanding everything is very costly and it would be great if there were a better way. A few months ago I worked with the llvm/clang folks to have the ExternalASTSource class be able to complete classes if there weren't completed yet: class ExternalASTSource { .... virtual void CompleteType (clang::TagDecl *Tag); virtual void CompleteType (clang::ObjCInterfaceDecl *Class); }; This was great, because we can now have the class that is producing the AST (SymbolFileDWARF and SymbolFileDWARFDebugMap) sign up as external AST sources and the object that creates the forward declaration types can now also complete them anywhere within the clang type system. This patch makes a few major changes: - lldb_private::Module classes now own the AST context. Previously the TypeList objects did. - The DWARF parsers now sign up as an external AST sources so they can complete types. - All of the pure clang type system wrapper code we have in LLDB (ClangASTContext, ClangASTType, and more) can now be iterating through children of any type, and if a class/union/struct type (clang::RecordType or ObjC interface) is found that is incomplete, we can ask the AST to get the definition. - The SymbolFileDWARFDebugMap class now will create and use a single AST that all child SymbolFileDWARF classes will share (much like what happens when we have a complete linked DWARF for an executable). We will need to modify some of the ClangUserExpression code to take more advantage of this completion ability in the near future. Meanwhile we should be better off now that we can be accessing any children of variables through pointers and always be able to resolve the clang type if needed. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123613 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
4a461da2712fb83babc0a46ef1c73d11bc50e8f2 |
14-Jan-2011 |
Caroline Tice <ctice@apple.com> |
Recent modifications to the Python script interpreter caused some problems when handling one-liner commands that contain escaped characters. In order to deal with the new namespace/dictionary stuff, the command was being embedded within a second string, which messed up the escaping. This fixes the problem by handling one-liners in a different manner, so they no longer need to be embedded within another string, and can still be processed in the proper namespace/dictionary context. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123467 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
0aa2e55f0e9422405ad33675adc1e35044537adb |
14-Jan-2011 |
Caroline Tice <ctice@apple.com> |
Split up the Python script interpreter code to allow multiple script interpreter objects to exist within the same process (one script interpreter object per debugger object). The python script interpreter objects are all using the same global Python script interpreter; they use separate dictionaries to keep their data separate, and mutex's to prevent any object attempting to use the global Python interpreter when another object is already using it. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123415 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObjectScript.cpp
ommandObjectScript.h
criptInterpreter.cpp
criptInterpreterPython.cpp
mbedded_interpreter.py
|
5d187e5495ee17f6763337a6ae28c2a7b07e4945 |
08-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Spelling changes applied from lldb_spelling.diffs from Bruce Mitchener. Thanks Bruce! git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123083 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandInterpreter.cpp
ommandObjectRegexCommand.cpp
ommandObjectScript.cpp
|
902e018b7b7b16609099c656c97ec2c0cb115c00 |
23-Dec-2010 |
Johnny Chen <johnny.chen@apple.com> |
Add a simple command: 'version' to the command interpreter, and an accompanying test case test_help_version(). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122515 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
80733ea8adc6db408b6861b553e9b5407ee62072 |
19-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Removed logging code that I accidentally left in after recent changes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122198 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
928d130789bd8ee38ce434ccb2d564e6069cf018 |
19-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Improved our argument parsing abilities to be able to handle stuff more like a shell would interpret it. A few examples that we now handle correctly INPUT: "Hello "world OUTPUT: "Hello World" INPUT: "Hello "' World' OUTPUT: "Hello World" INPUT: Hello" World" OUTPUT: "Hello World" This broke the setting of dictionary values for the "settings set" command for things like: (lldb) settings set target.process.env-vars ["MY_ENV_VAR"]=YES since we would drop the quotes. I fixed the user settings controller to use a regular expression so it can accept any of the following inputs for dictionary setting: settings set target.process.env-vars ["MY_ENV_VAR"]=YES settings set target.process.env-vars [MY_ENV_VAR]=YES settings set target.process.env-vars MY_ENV_VAR=YES We might want to eventually drop the first two syntaxes, but I won't make that decision right now. This allows more natural setting of the envirorment variables: settings set target.process.env-vars MY_ENV_VAR=YES ABC=DEF CWD=/tmp git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122166 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
dc3e063595c1b87729242b83baa0ea92a5987704 |
16-Dec-2010 |
Johnny Chen <johnny.chen@apple.com> |
Patch from Stephen Wilson: Extend Swig's include search path. Cover both /usr/include and /usr/local/include. This should allow Swig to find system headers such as stdint.h on all platforms we currently support. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121943 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
c1955f211a6061ec5ddceba1c97b4107fa2b4a1b |
16-Dec-2010 |
Johnny Chen <johnny.chen@apple.com> |
Patch by Stephen Wilson to make Swig happy building on linux. Pass the test suite on Mac OS X Snow Leopard. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121924 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
67637d8dc2a43990762e64f24790860a10d2393a |
15-Dec-2010 |
Caroline Tice <ctice@apple.com> |
Add termination instructions when entering the interactive script interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121884 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
cf03765e00f712f3421eee1d0d3c623b29fa188f |
14-Dec-2010 |
Jim Ingham <jingham@apple.com> |
Fix the completion of "fr " and the like. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121785 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
56d2fc45b9461d50054af20c33b836eb8ebd93f5 |
14-Dec-2010 |
Caroline Tice <ctice@apple.com> |
Fix small bugs: - Make sure cmd_obj & cmd_obj_sp contain a valid objects before attempting to dereference, in CommandObjectCommandsAlias::Execute and CommandInterpreter::HandleCommand. - Modify CommandInterpreter::GetCommandSPExact to properly handle multi-word command inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121779 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
ea6e3dfa37366e49d192280579da67607a7eb226 |
11-Dec-2010 |
Caroline Tice <ctice@apple.com> |
Fix bug where using incomplete strings for command names causes lldb to crash (because of attempt to look for full names when full names were not used). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121607 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
d9105c2f5e1a4b6bb1a9d424e3f1631e0e6296cd |
10-Dec-2010 |
Caroline Tice <ctice@apple.com> |
Various fixes mostly relating to the User Settings stuff: - Added new utility function to Arg, GetQuotedCommandString, which re-assembles the args into a string, replacing quotes that were originally there. - Modified user settings stuff to always show individual elements when printing out arrays and dictionaries. - Added more extensive help to 'settings set', explaining more about dictionaries and arrays (including current dictionary syntax). - Fixed bug in user settings where quotes were being stripped and lost, so that sometimes array or dictionary elements that ought to have been a single element were being split up. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121438 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
e0da7a5ba288669df3a4d51059aa0f78f729c6b1 |
09-Dec-2010 |
Caroline Tice <ctice@apple.com> |
Modify HandleCommand to not do any argument processing until it has determined whether or not the command should take raw input, then handle & dispatch the arguments appropriately. Also change the 'alias' command to be a command that takes raw input. This is necessary to allow aliases to be created for other commands that take raw input and might want to include raw input in the alias itself. Fix a bug in the aliasing mechanism when creating aliases for commands with 3-or-more words. Raw input should now be properly handled by all the command and alias mechanisms. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121423 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandInterpreter.cpp
|
44c841d68a439da13e3f170427675bff8c7f2731 |
07-Dec-2010 |
Caroline Tice <ctice@apple.com> |
- Fix alias-building & resolving to properly handle optional arguments for command options. - Add logging for command resolution ('log enable lldb commands') - Fix alias resolution to properly handle commands that take raw input (resolve the alias, but don't muck up the raw arguments). Net result: Among other things, 'expr' command can now take strings with escaped characters and not have the command handling & alias resolution code muck up the escaped characters. E.g. 'expr printf ("\n\n\tHello there!")' should now work properly. Not working yet: Creating aliases with raw input for commands that take raw input. Working on that. e.g. 'command alias print_hi expr printf ("\n\tHi!")' does not work yet. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121171 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandInterpreter.cpp
|
c4f55fee15b66ea53da092ca50400ac5d8b0692d |
19-Nov-2010 |
Caroline Tice <ctice@apple.com> |
Add the ability to catch and do the right thing with Interrupts (often control-c) and end-of-file (often control-d). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@119837 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
criptInterpreterPython.cpp
|
2ade6115e2aaf88cd90ccc8bf499108099bdeb86 |
10-Nov-2010 |
Caroline Tice <ctice@apple.com> |
Move the embedded Python interpreter onto a separate thread, to prevent main thread from having to wait on it (which was causing some I/O hangs). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@118700 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
e98ac25604b3d967158917f6fdd5289b3096fd80 |
10-Nov-2010 |
Greg Clayton <gclayton@apple.com> |
Modified lldb_private::SymboleFile to be able to override where its TypeList comes from by using a virtual function to provide it from the Module's SymbolVendor by default. This allows the DWARF parser, when being used to parse DWARF in .o files with a parent DWARF + debug map parser, to get its type list from the DWARF + debug map parser so when we go and find full definitions for types (that might come from other .o files), we can use the type list from the debug map parser. Otherwise we ended up mixing clang types from one .o file (say a const pointer to a forward declaration "class A") with the a full type from another .o file. This causes expression parsing, when copying the clang types from those parsed by the DWARF parser into the expression AST, to fail -- for good reason. Now all types are created in the same list. Also added host support for crash description strings that can be set before doing a piece of work. On MacOSX, this ties in with CrashReporter support that allows a string to be dispalyed when the app crashes and allows LLDB.framework to print a description string in the crash log. Right now this is hookup up the the CommandInterpreter::HandleCommand() where each command notes that it is about to be executed, so if we crash while trying to do this command, we should be able to see the command that caused LLDB to exit. For all other platforms, this is a nop. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@118672 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
abab14b9b6021781a8a6aef258ebfb7e617ba3e2 |
05-Nov-2010 |
Jim Ingham <jingham@apple.com> |
Added a top level Timer to the interpreter execute command. Also added an option to pass the depth to "log timer enable". That allows you to time just command execution with: log timer enable 1 <command> log timer dump git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@118267 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
49ce682dfa7993d31206cea19ce7006cd3f3077e |
31-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Cleaned up the API logging a lot more to reduce redundant information and keep the file size a bit smaller. Exposed SBValue::GetExpressionPath() so SBValue users can get an expression path for their values. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117851 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
5790e062ca89a9daf1a9648e9b567cba17c9438b |
28-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Remove references to particular Python version (use the system default version); change include statements to use Python.h in the Python framework on Mac OS X systems; leave it using regular Python.h on other systems. Note: I think this *ought* to work properly on Linux systems, but I don't have a system to test it on... git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117612 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
f81b4c5c3f8500aa9be9734f676608464ecb5472 |
27-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Flush the prompts immediately in the breakpoint command input readers, to make sure they come out at the correct times. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117470 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
f3d0b0c8081691128626eb496fdfcbf8ae54c1de |
27-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Updated the lldb_private::Flags class to have better method names and made all of the calls inlined in the header file for better performance. Fixed the summary for C string types (array of chars (with any combo if modifiers), and pointers to chars) work in all cases. Fixed an issue where a forward declaration to a clang type could cause itself to resolve itself more than once if, during the resolving of the type itself it caused something to try and resolve itself again. We now remove the clang type from the forward declaration map in the DWARF parser when we start to resolve it and avoid this additional call. This should stop any duplicate members from appearing and throwing all the alignment of structs, unions and classes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117437 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
7826c8894803dc729f29789ebc038956a94d3e7a |
26-Oct-2010 |
Caroline Tice <ctice@apple.com> |
First pass at adding logging capabilities for the API functions. At the moment it logs the function calls, their arguments and the return values. This is not complete or polished, but I am committing it now, at the request of someone who really wants to use it, even though it's not really done. It currently does not attempt to log all the functions, just the most important ones. I will be making further adjustments to the API logging code over the next few days/weeks. (Suggestions for improvements are welcome). Update the Python build scripts to re-build the swig C++ file whenever the python-extensions.swig file is modified. Correct the help for 'log enable' command (give it the correct number & type of arguments). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117349 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
e3663e8cd1fce64f73dd3740d65132a76ac97709 |
22-Oct-2010 |
Jim Ingham <jingham@apple.com> |
Changed "run" to alias "process launch --". Added "po" alias for "expression -o --" git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117125 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
537a7a86687683fd403ce652d178fbc89e06ef9f |
20-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Fixed an issue where we were resolving paths when we should have been. So the issue here was that we have lldb_private::FileSpec that by default was always resolving a path when using the: FileSpec::FileSpec (const char *path); and in the: void FileSpec::SetFile(const char *pathname, bool resolve = true); This isn't what we want in many many cases. One example is you have "/tmp" on your file system which is really "/private/tmp". You compile code in that directory and end up with debug info that mentions "/tmp/file.c". Then you type: (lldb) breakpoint set --file file.c --line 5 If your current working directory is "/tmp", then "file.c" would be turned into "/private/tmp/file.c" which won't match anything in the debug info. Also, it should have been just a FileSpec with no directory and a filename of "file.c" which could (and should) potentially match any instances of "file.c" in the debug info. So I removed the constructor that just takes a path: FileSpec::FileSpec (const char *path); // REMOVED You must now use the other constructor that has a "bool resolve" parameter that you must always supply: FileSpec::FileSpec (const char *path, bool resolve); I also removed the default parameter to SetFile(): void FileSpec::SetFile(const char *pathname, bool resolve); And fixed all of the code to use the right settings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116944 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ptions.cpp
|
3a62e6d75447822b184f6501331079fe47283c49 |
19-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Combine eArgTypeSignalName and eArgTypeUnixSignalNumber into a single argument type, eArgTypeUnixSignal. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116764 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
8b5a077f92e230f0a9dfecd8760b551d0ef680d4 |
19-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Fix small mistake in previous commit (fixing aliases for commands that take raw input). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116760 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
0fb069d4799d1119f9984cd4a8aec9e53381a46b |
18-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Fix bug where aliases for commands that take raw input were not executing properly. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116735 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
5867f6b8768f5b8903e1b1bbcd9822b5bc55dff6 |
18-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Prevent Python script interpreter initialization from changing the termios settings on the debugger's input handle. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116725 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
24b48ff28b7c60dd4598212c3e77935a0fc1142d |
18-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Added a new Host call to find LLDB related paths: static bool Host::GetLLDBPath (lldb::PathType path_type, FileSpec &file_spec); This will fill in "file_spec" with an appropriate path that is appropriate for the current Host OS. MacOSX will return paths within the LLDB.framework, and other unixes will return the paths they want. The current PathType enums are: typedef enum PathType { ePathTypeLLDBShlibDir, // The directory where the lldb.so (unix) or LLDB mach-o file in LLDB.framework (MacOSX) exists ePathTypeSupportExecutableDir, // Find LLDB support executable directory (debugserver, etc) ePathTypeHeaderDir, // Find LLDB header file directory ePathTypePythonDir // Find Python modules (PYTHONPATH) directory } PathType; All places that were finding executables are and python paths are now updated to use this Host call. Added another new host call to launch the inferior in a terminal. This ability will be very host specific and doesn't need to be supported on all systems. MacOSX currently will create a new .command file and tell Terminal.app to open the .command file. It also uses the new "darwin-debug" app which is a small app that uses posix to exec (no fork) and stop at the entry point of the program. The GDB remote plug-in is almost able launch a process and attach to it, it currently will spawn the process, but it won't attach to it just yet. This will let LLDB not have to share the terminal with another process and a new terminal window will pop up when you launch. This won't get hooked up until we work out all of the kinks. The new Host function is: static lldb::pid_t Host::LaunchInNewTerminal ( const char **argv, // argv[0] is executable const char **envp, const ArchSpec *arch_spec, bool stop_at_entry, bool disable_aslr); Cleaned up FileSpec::GetPath to not use strncpy() as it was always zero filling the entire path buffer. Fixed an issue with the dynamic checker function where I missed a '$' prefix that should have been added. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116690 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
d7a4eb073d08bf632154b74189e36a28726cefaa |
14-Oct-2010 |
Johnny Chen <johnny.chen@apple.com> |
Add an initial version of test that exercise the lldb commands: 'process signal' and 'process handle'. The test suite would like to control the asynch/sync execution of the interpreter during the middle of the test method, so the CommandInterpreter::SetSynchronous(bool value) is modified to allow the mode to be changed more than once. In practice, it would be advisable to control the process and to set the async/sync mode from a single thread, too. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116467 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
23d6f274bdb3d91d8c78b24f008ef1e7ce63dbbe |
13-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Add new argument type, eArgSignalName, Add missing break statment to case statement in Process::ShouldBroadcastEvent. Add new command, "process handle" to allow users to control process behavior on the receipt of various Unix signals (whether the process should stop; whether the process should be passed the signal; whether the debugger user should be notified that the signal came in). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116430 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
3439178f12feba0e4ef31865051361664c9a80a1 |
13-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Replace contains_string with 'strcasestr' from libc. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116351 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
bd5c63ef58a9ebed5b458ddbb77eb334b84787bd |
12-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Fix some memory leaks. Add call to lldb.SBDebugger.Initialize() to lldb.py, so it automatically gets called when the lldb Python module gets loaded. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116345 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
168158ae8e71596a393dd868d5afef142f1a5e4d |
12-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Regular expression commands now print the command that results from expanding the regular expression command. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116320 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectRegexCommand.cpp
|
5e0894e35229fc8aa2ad825b06a741ddde812e86 |
12-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Fix bug where alias command options were being duplicated as command arguments as well. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116316 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
887aa2898314218406275a34cbec30c11cd00acd |
11-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Added a "--no-lldbinit" option (-n for short (which magically matches what gdb uses)) so we can tell our "lldb" driver program to not automatically parse any .lldbinit files. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116179 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
8f6be2a6af783f9b40cf529f9fcad094dae1e576 |
09-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Fixed process.gdb-remote to be able to properly propagate the signals and obey the UnixSignals table that we have in the process. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116139 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
25ca984eabbf6a8004d0440968fd18d19ddeb814 |
09-Oct-2010 |
Johnny Chen <johnny.chen@apple.com> |
Emit a diagnostic message instead of crashing when an argument entry is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116114 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
b8b18c90e98ed6f426078d98f7ad2371aa2d6990 |
08-Oct-2010 |
Johnny Chen <johnny.chen@apple.com> |
Fixed a crasher when doing 'help image dump symtab'. Supply the entry to the global arguments table. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116058 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
|
5144f389f9417e106364d7fdbf5631de19ed4fe8 |
07-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
More SWIG cleanup. Moved the breakpoint callback function back to the ScriptInterpreterPython class and made a simple callback function that ScriptInterpreterPython::BreakpointCallbackFunction() now calls so we don't include any internal API stuff into the cpp file that is generated by SWIG. Fixed a few build warnings in debugserver. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115926 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
9305747659465e27c87a5bc5ff60c7a36fc8fefc |
05-Oct-2010 |
Jim Ingham <jingham@apple.com> |
Add an "auto-confirm" setting to the debugger so you can turn off the confirmations if you want to. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115572 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
43b014aa33e20e61790e16ed69a2c57aae2fbc6e |
05-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Modify existing commands with arguments to use the new argument mechanism (for standardized argument names, argument help, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115570 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
|
5e16ef58a8bc2788be0ba03d8b2d0e9f3650fa5d |
04-Oct-2010 |
Jim Ingham <jingham@apple.com> |
Add a "Confirm" function to the CommandInterpreter so you can confirm potentially dangerous operations in a generic way. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115546 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
4d6675c8e1cab6360f59865229835ae137d6f68a |
01-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Modify command options to use the new arguments mechanism. Now all command option arguments are specified in a standardized way, will have a standardized name, and have functioning help. The next step is to start writing useful help for all the argument types. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115335 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
ptions.cpp
|
fb355113cef81a6fa56b468bec7798a24d027b6d |
01-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Add infrastructure for standardizing arguments for commands and command options; makes it easier to ensure that the same type of argument will have the same name everywhere, hooks up help for command arguments, so that users can ask for help when they are confused about what an argument should be; puts in the beginnings of the ability to do tab-completion for certain types of arguments, allows automatic syntax help generation for commands with arguments, and adds command arguments into command options help correctly. Currently only the breakpoint-id and breakpoint-id-range arguments, in the breakpoint commands, have been hooked up to use the new mechanism. The next steps will be to fix the command options arguments to use this mechanism, and to fix the rest of the regular command arguments to use this mechanism. Most of the help text is currently missing or dummy text; this will need to be filled in, and the existing argument help text will need to be cleaned up a bit (it was thrown in quickly, mostly for testing purposes). Help command now works for all argument types, although the help may not be very helpful yet. Those commands that take "raw" command strings now indicate it in their help text. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115318 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObject.cpp
ptions.cpp
|
5136f942d0a3a7f60b46ab90c4626bcc3b2a17f0 |
27-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Fix one-liner Python breakpoint commands to be wrapped up in an automatically generated Python function, and passed the stoppoint context frame and bp_loc as parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114894 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
59c5d5dbe1b565bca389c9547377a2dd17b9e956 |
27-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Automatically wrap *all* Python code entered for a breakpoint command inside an auto-generated Python function, and pass the stoppoint context frame and breakpoint location as parameters to the function (named 'frame' and 'bp_loc'), to be used inside the breakpoint command Python code, if desired. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114849 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
8bb61f099795a3fd98edf655c3e6899cd2668f6c |
22-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Update help text for breakpoint command one-liners. Fix minor bug in 'commands alias'; alias commands can now handle command options and arguments in the same alias. Also fixes problem that disallowed "process launch --" as an alias. Fix typo in comment in Python script interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114499 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
b447e84828dda036b599108e0ebdb29fd505571d |
21-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Re-write/clean up code that generated Python breakpoint commands. Add a warning if no command was attached to the breakpoint. Update the help slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114467 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
9e8e696813e7c83facc0e9b02a17242510913a2b |
20-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Make the short option print out before the long option in the command options detailed help section (since it's sorted by short option). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114364 91177308-0d34-0410-b5e6-96231b3b80d8
ptions.cpp
|
5bc8c97d62b2e399bd90fb7e00c903d7887412ab |
20-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Add UserSettings to Target class, making Target settings the parent of Process settings; add 'default-arch' as a class-wide setting for Target. Replace lldb::GetDefaultArchitecture with Target::GetDefaultArchitecture & Target::SetDefaultArchitecture. Add 'use-external-editor' as user setting to Debugger class & update code appropriately. Add Error parameter to methods that get user settings, for easier reporting of bad requests. Fix various other minor related bugs. Fix test cases to work with new changes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114352 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
fe424a92fc6fd92f810d243912461fe028a2b63c |
18-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
General command line help cleanup: - All single character options will now be printed together - Changed all options that contains underscores to contain '-' instead - Made the help come out a little flatter by showing the long and short option on the same line. - Modified the short character for "--ignore-count" options to "-i" git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114265 91177308-0d34-0410-b5e6-96231b3b80d8
ptions.cpp
|
238c0a1e7b733cee539258faa656159c63f9e893 |
18-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
Fixed the way set/show variables were being accessed to being natively accessed by the objects that own the settings. The previous approach wasn't very usable and made for a lot of unnecessary code just to access variables that were already owned by the objects. While I fixed those things, I saw that CommandObject objects should really have a reference to their command interpreter so they can access the terminal with if they want to output usaage. Fixed up all CommandObjects to take an interpreter and cleaned up the API to not need the interpreter to be passed in. Fixed the disassemble command to output the usage if no options are passed down and arguments are passed (all disassebmle variants take options, there are no "args only"). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114252 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
ommandObjectRegexCommand.cpp
ommandObjectScript.cpp
ommandObjectScript.h
ptions.cpp
criptInterpreter.cpp
criptInterpreterNone.cpp
criptInterpreterPython.cpp
|
0f3a8ebf8cd0cb27165a5aba45b33f1cd46e4b80 |
16-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
Added default more aliases to ease gdb converts: "b" is now aliased to "regexp-break" "p" is now aliased to "frame variable" "print" is now aliased to "frame variable" git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114092 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c95c6d1a56c83322ac327fec6d4459ca47c3525e |
15-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Remove help text that is no longer correct. Fix Python script interpreter to not fail when the Debugger does not have input/output file handles. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113880 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
00edd3a1f83d400cfe0ccaba438276a22c13c3f6 |
13-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Clean up help text. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113738 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
2160c3f0128aed3b5f9d20d51a1ea2bc5958ff42 |
12-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Add missing result.SetStatus, to allow aliases to be created with missing arguments for some of the command options. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113714 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
|
3e0571b6e8fe4cc0946529525e6a29eb0f1a8f70 |
11-Sep-2010 |
Johnny Chen <johnny.chen@apple.com> |
Fixed some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113673 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
d1c2dcac1c8509a77e6d9227c1285f96cbfadeb3 |
10-Sep-2010 |
Johnny Chen <johnny.chen@apple.com> |
Added the capability to specify a one-liner Python script as the callback command for a breakpoint, for example: (lldb) breakpoint command add -p 1 "conditional_break.stop_if_called_from_a()" The ScriptInterpreter interface has an extra method: /// Set a one-liner as the callback for the breakpoint command. virtual void SetBreakpointCommandCallback (CommandInterpreter &interpreter, BreakpointOptions *bp_options, const char *oneliner); to accomplish the above. Also added a test case to demonstrate lldb's use of breakpoint callback command to stop at function c() only when its immediate caller is function a(). The following session shows the user entering the following commands: 1) command source .lldb (set up executable, breakpoint, and breakpoint command) 2) run (the callback mechanism will skip two breakpoints where c()'s immeidate caller is not a()) 3) bt (to see that indeed c()'s immediate caller is a()) 4) c (to continue and finish the program) test/conditional_break $ ../../build/Debug/lldb (lldb) command source .lldb Executing commands in '.lldb'. (lldb) file a.out Current executable set to 'a.out' (x86_64). (lldb) breakpoint set -n c Breakpoint created: 1: name = 'c', locations = 1 (lldb) script import sys, os (lldb) script sys.path.append(os.path.join(os.getcwd(), os.pardir)) (lldb) script import conditional_break (lldb) breakpoint command add -p 1 "conditional_break.stop_if_called_from_a()" (lldb) run run Launching '/Volumes/data/lldb/svn/trunk/test/conditional_break/a.out' (x86_64) (lldb) Checking call frames... Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`b at main.c:34 frame #2: a.out`a at main.c:25 frame #3: a.out`main at main.c:44 frame #4: a.out`start c called from b Continuing... Checking call frames... Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`b at main.c:34 frame #2: a.out`main at main.c:47 frame #3: a.out`start c called from b Continuing... Checking call frames... Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`a at main.c:27 frame #2: a.out`main at main.c:50 frame #3: a.out`start c called from a Stopped at c() with immediate caller as a(). a(1) returns 4 b(2) returns 5 Process 20420 Stopped * thread #1: tid = 0x2e03, 0x0000000100000de8 a.out`c + 7 at main.c:39, stop reason = breakpoint 1.1, queue = com.apple.main-thread 36 37 int c(int val) 38 { 39 -> return val + 3; 40 } 41 42 int main (int argc, char const *argv[]) (lldb) bt bt thread #1: tid = 0x2e03, stop reason = breakpoint 1.1, queue = com.apple.main-thread frame #0: 0x0000000100000de8 a.out`c + 7 at main.c:39 frame #1: 0x0000000100000dbc a.out`a + 44 at main.c:27 frame #2: 0x0000000100000e4b a.out`main + 91 at main.c:50 frame #3: 0x0000000100000d88 a.out`start + 52 (lldb) c c Resuming process 20420 Process 20420 Exited a(3) returns 6 (lldb) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113596 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
98bea86b61bfa2a15cea72d2c14f9e03992ab5a6 |
10-Sep-2010 |
Johnny Chen <johnny.chen@apple.com> |
Don't flatten lldb and import everything into the global namespace. Instead, set the debugger_unique_id with the lldb prefix. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113589 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
e5f18b09a1f4097bf1578edc878bb8605a6f9de3 |
09-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Modify the command options help generation so that required options are always printed immediately after the command, before optional options; also so that in the detailed descriptions of each command option, the options and their help are output in alphabetical order (sorted by the short option) rather in whatever order they happened to be in the table. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113496 91177308-0d34-0410-b5e6-96231b3b80d8
ptions.cpp
|
1d2aefd474c9893407ef4deacefd08dd2ca2e806 |
09-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Make all debugger-level user settable variables into instance variables. Make get/set variable at the debugger level always set the particular debugger's instance variables rather than the default variables. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113474 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
ptions.cpp
|
c1ad82eb979ee856b86aec6e2acb7bddf75f7c4f |
08-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Small help text fixes, to make it more consistent and accurate. Temporarily remove -l option from 'expr' command (at Sean's request). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113298 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObjectScript.cpp
|
6e4c5ce0f697eb9899a54854a2a9004e961b0de2 |
04-Sep-2010 |
Caroline Tice <ctice@apple.com> |
This is a very large commit that completely re-does the way lldb handles user settable internal variables (the equivalent of set/show variables in gdb). In addition to the basic infrastructure (most of which is defined in UserSettingsController.{h,cpp}, there are examples of two classes that have been set up to contain user settable variables (the Debugger and Process classes). The 'settings' command has been modified to be a command-subcommand structure, and the 'set', 'show' and 'append' commands have been moved into this sub-commabnd structure. The old StateVariable class has been completely replaced by this, and the state variable dictionary has been removed from the Command Interpreter. Places that formerly accessed the state variable mechanism have been modified to access the variables in this new structure instead (checking the term-width; getting/checking the prompt; etc.) Variables are attached to classes; there are two basic "flavors" of variables that can be set: "global" variables (static/class-wide), and "instance" variables (one per instance of the class). The whole thing has been set up so that any global or instance variable can be set at any time (e.g. on start up, in your .lldbinit file), whether or not any instances actually exist (there's a whole pending and default values mechanism to help deal with that). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113041 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ptions.cpp
criptInterpreter.cpp
tateVariable.cpp
|
439ab61a936c11a9f101ce28190f67cc61011256 |
03-Sep-2010 |
Jim Ingham <jingham@apple.com> |
Delete the vestigal "select", "info" and "delete" commands. Also move "Carbon.framework" to the right place. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112993 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
537926c76e5bc7b92ce9a74c864f1d2e2a346596 |
02-Sep-2010 |
Jim Ingham <jingham@apple.com> |
Move "variable list" to "frame variable" git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112782 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
452bf613496c7290c6b7a1a1eb28efbce63fd3b9 |
31-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Added the ability to disable ASLR (Address Space Layout Randomization). ASLR is disabled by default, and can be enabled using: (lldb) set disable-aslr 0 git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112616 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
65dafa8344c8c018e346dd331a7782081a896239 |
27-Aug-2010 |
Sean Callanan <scallanan@apple.com> |
This is a major refactoring of the expression parser. The goal is to separate the parser's data from the data belonging to the parser's clients. This allows clients to use the parser to obtain (for example) a JIT compiled function or some DWARF code, and then discard the parser state. Previously, parser state was held in ClangExpression and used liberally by ClangFunction, which inherited from ClangExpression. The main effects of this refactoring are: - reducing ClangExpression to an abstract class that declares methods that any client must expose to the expression parser, - moving the code specific to implementing the "expr" command from ClangExpression and CommandObjectExpression into ClangUserExpression, a new class, - moving the common parser interaction code from ClangExpression into ClangExpressionParser, a new class, and - making ClangFunction rely only on ClangExpressionParser and not depend on the internal implementation of ClangExpression. Side effects include: - the compiler interaction code has been factored out of ClangFunction and is now in an AST pass (ASTStructExtractor), - the header file for ClangFunction is now fully documented, - several bugs that only popped up when Clang was deallocated (which never happened, since the lifetime of the compiler was essentially infinite) are now fixed, and - the developer-only "call" command has been disabled. I have tested the expr command and the Objective-C step-into code, which use ClangUserExpression and ClangFunction, respectively, and verified that they work. Please let me know if you encounter bugs or poor documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112249 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
65124eac53b7a214906e8931be314e429bbbeb30 |
27-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Changed the StackID to store its start PC address as a load address instead of a section offset address. Fixed up some very inefficient STL code. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112230 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
c833295baeec641086f536e78050388af36784f8 |
26-Aug-2010 |
Jim Ingham <jingham@apple.com> |
Change "Current" as in GetCurrentThread, GetCurrentStackFrame, etc, to "Selected" i.e. GetSelectedThread. Selected makes more sense, since these are set by some user action (a selection). I didn't change "CurrentProcess" since this is always controlled by the target, and a given target can only have one process, so it really can't be selected. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112221 91177308-0d34-0410-b5e6-96231b3b80d8
ptions.cpp
|
1977419e899754aab0dea1ee049ad02bfbe4367c |
10-Aug-2010 |
Johnny Chen <johnny.chen@apple.com> |
There is no need to restore (sys.stdin, sys.stdout) of the python script interpreter right before calling Py_Finalize(). This also fixed the crash as reported in rdar://problem/8252903. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@110731 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
a3aff73b5151c97b3adb1cea3022df967e33db45 |
09-Aug-2010 |
Sean Callanan <scallanan@apple.com> |
Updated help text to refer to "commands alias" instead of "alias." Also fixed a bunch of indentation in the help for "commands alias." git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@110585 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
60dde64d699c71807dc95d75b40f5b777d167cc4 |
31-Jul-2010 |
Johnny Chen <johnny.chen@apple.com> |
We can do better when reporting the status of one-liner script execution. Change the prototype of ScriptInterpreter::ExecuteOneLine() to return bool instead of void and take one additional parameter as CommandReturnObject *. Propagate the status of one-liner execution back appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@109899 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectScript.cpp
criptInterpreterNone.cpp
criptInterpreterPython.cpp
|
7c9842487cd2a61f12669624f4ba38bb5c8617ea |
28-Jul-2010 |
Johnny Chen <johnny.chen@apple.com> |
The unix "source" command maps to "command source" in lldb. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@109673 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
53d68e749f0715691a95f23e9490d97e484b15da |
21-Jul-2010 |
Greg Clayton <gclayton@apple.com> |
Remove use of STL collection class use of the "data()" method since it isn't part of C++'98. Most of these were "std::vector<T>::data()" and "std::string::data()". git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@108957 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ptions.cpp
|
7a45a2f97a99d8015c0c74f7b634e9d33cd360ca |
20-Jul-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
More constructor warning fixes from William Lynch. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@108840 91177308-0d34-0410-b5e6-96231b3b80d8
ommandObjectRegexCommand.cpp
|
bef1583b89e73de77c8b0897fcf42b5b1fcabe4c |
14-Jul-2010 |
Greg Clayton <gclayton@apple.com> |
I enabled some extra warnings for hidden local variables and for hidden virtual functions and caught some things and did some general code cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@108299 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ptions.cpp
criptInterpreter.cpp
|
980d067aa269147da6ca8e59dee583a7936af67c |
13-Jul-2010 |
Greg Clayton <gclayton@apple.com> |
Patch from Jean-Daniel Dupas: Makefile patch to explicitly use PROJ_SRC_DIR when required. It fixes build when obj dir is not source dir. I also fixed a build warning in ClangResultSynthesizer.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@108210 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
799122595ec9e88ff4a11fbcbd2325facf958aa0 |
10-Jul-2010 |
Eli Friedman <eli.friedman@gmail.com> |
A few more misc warning fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@108030 91177308-0d34-0410-b5e6-96231b3b80d8
tateVariable.cpp
|
54e7afa84d945f9137f9372ecde432f9e1a702fc |
09-Jul-2010 |
Greg Clayton <gclayton@apple.com> |
Merged Eli Friedman's linux build changes where he added Makefile files that enabled LLVM make style building and made this compile LLDB on Mac OS X. We can now iterate on this to make the build work on both linux and macosx. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@108009 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
akefile
|
121f331dfc6fc823785b8a14136833e6a45ed84f |
07-Jul-2010 |
Greg Clayton <gclayton@apple.com> |
Added some comments to clarify where "init_lldb" comes from. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107801 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
eb43f5977b8ba2ffdb1d9b60d09015b88740ba3d |
07-Jul-2010 |
Jim Ingham <jingham@apple.com> |
Remove includes for removed files... git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107753 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
767af88aa617288e584afcfed055f7755e408542 |
07-Jul-2010 |
Jim Ingham <jingham@apple.com> |
Fix GetRepeatCommand so it works with multi-word commands. Move the "source", "alias", and "unalias" commands to "commands *". Move "source-file" to "source list". Added a "source info" command but it isn't implemented yet. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107751 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
5d9cbd4d92831b9f255b4e5b5304bfd0cdff29c7 |
07-Jul-2010 |
Jim Ingham <jingham@apple.com> |
Added a "GetRepeatCommand" to the command object. The Interpreter uses this instead of the last history item to provide a command for the "empty" command. Use this in the source-file command to make <RETURN> continue the listing rather than relist the first listing... git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107736 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
d40f8a68b49a43264ff41a0f0ef51bef6372e8b3 |
07-Jul-2010 |
Jim Ingham <jingham@apple.com> |
Hide the logic for command resolution for commands, aliases & user commands behind a single interface so everybody does it the same way. Add an "exact" lookup for internal uses. Fix up a few little cases where we weren't reporting command lookup errors correctly. Added "b" as an alias for "breakpoint" so it doesn't collide with "bt". git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107718 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
|
558be58c085ed1d3e33c01f5ea3bf0eff63ab827 |
30-Jun-2010 |
Caroline Tice <ctice@apple.com> |
Add a unique ID to each debugger instance. Add functions to look up debugger by id Add global variable to lldb python module, to hold debugger id Modify embedded Python interpreter to update the global variable with the id of its current debugger. Modify the char ** typemap definition in lldb.swig to accept 'None' (for NULL) as a valid value. The point of all this is so that, when you drop into the embedded interpreter from the command interpreter (or when doing Python-based breakpoint commands), there is a way for the Python side to find/get the correct debugger instance ( by checking debugger_unique_id, then calling SBDebugger::FindDebuggerWithID on it). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107287 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
802f8b0e11525a61f6becfd3562222b2cfaea965 |
30-Jun-2010 |
Jim Ingham <jingham@apple.com> |
Add a source file completer to the CommandCompleters. Add a way for the completers to say whether the completed argument should have a space inserted after is or not. Added the file name completer to the "file" command. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107247 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
ommandObject.cpp
ptions.cpp
|
adb8429ff57c3d54300dd6a8a1ed993d655c1931 |
24-Jun-2010 |
Jim Ingham <jingham@apple.com> |
Handle completing "-" and "--". git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106784 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandObject.cpp
|
8b9af1caac91c9e66440370a79705a3370e0a360 |
24-Jun-2010 |
Jim Ingham <jingham@apple.com> |
Convert direct access to the required & optional option sets to an accessor so we can lazily run BuildValidOptionSet, but make sure it is done before access. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106783 91177308-0d34-0410-b5e6-96231b3b80d8
ptions.cpp
|
9a57417fd3e1a4a9fe5044fc431f9836bade906d |
24-Jun-2010 |
Jim Ingham <jingham@apple.com> |
Fix a bug in handling command resolution for non-exact matches. Now we will correctly give help options when there are both aliases & real commands matching the current input string. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106782 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
63094e0bb161580564954dee512955c1c79d3476 |
23-Jun-2010 |
Greg Clayton <gclayton@apple.com> |
Very large changes that were needed in order to allow multiple connections to the debugger from GUI windows. Previously there was one global debugger instance that could be accessed that had its own command interpreter and current state (current target/process/thread/frame). When a GUI debugger was attached, if it opened more than one window that each had a console window, there were issues where the last one to setup the global debugger object won and got control of the debugger. To avoid this we now create instances of the lldb_private::Debugger that each has its own state: - target list for targets the debugger instance owns - current process/thread/frame - its own command interpreter - its own input, output and error file handles to avoid conflicts - its own input reader stack So now clients should call: SBDebugger::Initialize(); // (static function) SBDebugger debugger (SBDebugger::Create()); // Use which ever file handles you wish debugger.SetErrorFileHandle (stderr, false); debugger.SetOutputFileHandle (stdout, false); debugger.SetInputFileHandle (stdin, true); // main loop SBDebugger::Terminate(); // (static function) SBDebugger::Initialize() and SBDebugger::Terminate() are ref counted to ensure nothing gets destroyed too early when multiple clients might be attached. Cleaned up the command interpreter and the CommandObject and all subclasses to take more appropriate arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106615 91177308-0d34-0410-b5e6-96231b3b80d8
ommandContext.cpp
ommandInterpreter.cpp
ommandObject.cpp
ommandObjectRegexCommand.cpp
ommandObjectScript.cpp
ommandObjectScript.h
ptions.cpp
criptInterpreterNone.cpp
criptInterpreterPython.cpp
|
285c23e0701202f4012a62654c261222cfa1a725 |
18-Jun-2010 |
Jim Ingham <jingham@apple.com> |
Remove an include of the deleted CommandObjectStatus.h. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106297 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
41313fcfe1dac69ea33cc835c5eff28262e5cc04 |
18-Jun-2010 |
Jim Ingham <jingham@apple.com> |
Move the "status" command to "process status" since that's where it belongs. Also make it print "running" if invoked when the current process is running. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106265 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
84cdc15005983e5244d665fa779e33c2b6fac95f |
15-Jun-2010 |
Jim Ingham <jingham@apple.com> |
Move Args.{cpp,h} and Options.{cpp,h} to Interpreter where they really belong. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106034 91177308-0d34-0410-b5e6-96231b3b80d8
rgs.cpp
ommandInterpreter.cpp
ommandObject.cpp
ommandObjectScript.cpp
ptions.cpp
|
ccdb9ec8adf5b2899ac118e0cda4bf60fad5b2aa |
13-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix include paths; please check that this works on Mac. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105906 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
bfe9bb9724b29264ad414e43bb261e024a036461 |
12-Jun-2010 |
Greg Clayton <gclayton@apple.com> |
Moved files around for linux build. Fixed up Xcode project to refer to the new locations. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105885 91177308-0d34-0410-b5e6-96231b3b80d8
ommandCompletions.cpp
ommandObjectCrossref.cpp
ommandObjectMultiword.cpp
ommandObjectScript.cpp
ommandObjectScript.h
|
b34d2a2558390235a90ddadb9c698107d85ddfff |
10-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix include path. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105757 91177308-0d34-0410-b5e6-96231b3b80d8
ommandInterpreter.cpp
|
a8a5e562db734341149365d2bf7fd501365ed701 |
09-Jun-2010 |
Jason Molenda <jmolenda@apple.com> |
Committing patch from Joseph Ranieri to handle 'exit()' the same as 'quit()' in the python script environment. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105756 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
mbedded_interpreter.py
|
dea5ea78ef9bf371a0d19590c6b7c6989cba9a89 |
09-Jun-2010 |
Jason Molenda <jmolenda@apple.com> |
Move source/Utility/PseudoTerminal.h into include/lldb/Utility. The top of the header file seems to indicate that this was intended to be over at include/lldb/Core but we should be in line with the .cpp file's location so it's include/lldb/Utility for now. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105753 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreter.cpp
|
3c90d99d1520c45942479257a632f38f0191a360 |
09-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Don't include Python.h in the shared header. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105737 91177308-0d34-0410-b5e6-96231b3b80d8
criptInterpreterPython.cpp
|
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
ommandCompletions.cpp
ommandContext.cpp
ommandInterpreter.cpp
ommandObject.cpp
ommandObjectCrossref.cpp
ommandObjectMultiword.cpp
ommandObjectRegexCommand.cpp
ommandReturnObject.cpp
criptInterpreter.cpp
criptInterpreterNone.cpp
criptInterpreterPython.cpp
tateVariable.cpp
mbedded_interpreter.py
|