| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 166070
|
|
|
|
|
|
|
|
|
|
| |
"expr" command and from
the SB API's that evaluate expressions.
<rdar://problem/12457211>
llvm-svn: 166062
|
|
|
|
|
|
| |
support them long-term
llvm-svn: 166060
|
|
|
|
|
|
| |
immediate output would not cause suppression of the final printout. This allows effective output redirection for Python commands
llvm-svn: 166058
|
|
|
|
|
|
| |
From SBType, we can now get a lldb::BasicType enumeration out of an existing type.
llvm-svn: 165857
|
|
|
|
|
|
| |
SBProcess::SetSelectedThreadByID() had a "uint32_t tid" parameter which would truncate 64 bit thread IDs (lldb::tid_t is 64 bit).
llvm-svn: 165852
|
|
|
|
|
|
| |
lldb_private::Declaration - make a GetDeclaration() API on SBValue to return a declaration. This will only work for vroot variables as they are they only objects for which we currently provide a valid Declaration
llvm-svn: 165672
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ProcessSP. We can't create Threads with a NULL ProcessSP, so it makes no sense to use the SP.
Then make the Thread a Broadcaster, and get it to broadcast when the selected frame is changed (but only from the Command Line) and when Thread::ReturnFromFrame
changes the stack.
Made the Driver use this notification to print the new thread status rather than doing it in the command.
Fixed a few places where people were setting their broadcaster class by hand rather than using the static broadcaster class call.
<rdar://problem/12383087>
llvm-svn: 165640
|
|
|
|
| |
llvm-svn: 165460
|
|
|
|
|
|
| |
get_process_thread_list function was creating invalid threads_access instances, and hence failing to correctly fill in the list
llvm-svn: 165421
|
|
|
|
|
|
| |
complained about syntax errors on the next line. It being a Friday afternoon made the rest
llvm-svn: 165420
|
|
|
|
|
|
| |
Jason's build
llvm-svn: 165410
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it applied,
starting lldb I get
% ./lldb -x
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/tmp/build/Debug/LLDB.framework/Versions/A/Resources/Python/lldb/__init__.py", line 9008
raise TypeError("No array item of type %s" % str(type(key)))
^
SyntaxError: invalid syntax
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
(lldb)
I did a clean build and still got the problem so I'm backing this out until Enrico can
look at it.
llvm-svn: 165356
|
|
|
|
| |
llvm-svn: 165348
|
|
|
|
| |
llvm-svn: 165344
|
|
|
|
|
|
| |
our gdb friends.
llvm-svn: 165328
|
|
|
|
|
|
| |
scripting world in order to avoid supporting varargs through SWIG
llvm-svn: 165274
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 164865
|
|
|
|
|
|
| |
Ubuntu.
llvm-svn: 164801
|
|
|
|
| |
llvm-svn: 164648
|
|
|
|
|
|
|
|
|
|
| |
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).
llvm-svn: 163912
|
|
|
|
|
|
| |
thread return command.
llvm-svn: 163867
|
|
|
|
| |
llvm-svn: 163670
|
|
|
|
| |
llvm-svn: 162753
|
|
|
|
| |
llvm-svn: 162685
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Tweaked a parameter name in SBDebugger.h so my typemap will catch it;
- Added a SBDebugger.Create(bool, callback, baton) to the swig interface;
- Added SBDebugger.SetLoggingCallback to the swig interface;
- Added a callback utility function for log callbacks;
- Guard against Py_None on both callback utility functions;
- Added a FIXME to the SBDebugger API test;
- Added a __del__() stub for SBDebugger.
We need to be able to get both the log callback and baton from an
SBDebugger if we want to protect against memory leaks (or make the user
responsible for holding another reference to the callback).
Additionally, it's impossible to revert from a callback-backed log
mechanism to a file-backed log mechanism.
llvm-svn: 162633
|
|
|
|
| |
llvm-svn: 162527
|
|
|
|
|
|
| |
functionality (still WIP)
llvm-svn: 162513
|
|
|
|
| |
llvm-svn: 162373
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now it's possible to use SBInputReader callbacks in Python.
We leak the callback object, unfortunately. A __del__ method can be added
to SBInputReader, but we have no way to check the callback function that
is on the reader. So we can't call Py_DECREF on it when we have our
PythonCallback function. One way to do it is to assume that reified
SBInputReaders always have a Python callback (and always call Py_DECREF).
Another one is to add methods or properties to SBInputReader (or make the
m_callback_function property public).
llvm-svn: 162356
|
|
|
|
|
|
|
|
| |
running the test suite.
Also modify the boundary condition test case SBDebugger.DispatchInput(None) to be wrapped inside a try-except clause for now.
llvm-svn: 162228
|
|
|
|
|
|
| |
I also added a typemap to make DispatchInput usable in Python.
llvm-svn: 162204
|
|
|
|
| |
llvm-svn: 162203
|
|
|
|
| |
llvm-svn: 162161
|
|
|
|
|
|
| |
Add 'watchpoint command add/delete/list' to lldb, plus two .py test files.
llvm-svn: 161638
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added new API to lldb::SBTypeMember for bitfields:
bool SBTypeMember::IsBitfield();
uint32_t SBTypeMember::GetBitfieldSizeInBits();
Also added new properties for easy access. Now SBTypeMember objects in python have a "fields" property for all type fields, "bases" for all direct bases, "vbases" for all virtual base classes and "members" for a combo of all three organized by bit offset. They all return a python list() of SBTypeMember objects. Usage:
(lldb) script
>>> t = lldb.target.FindFirstType("my_type")
>>> for field in t.fields:
... print field
>>> for vbase in t.vbases:
... print vbase
>>> for base in t.bases:
... print base
>>> for member in t.members:
... print member
Also added new "is_bitfield" property to the SBTypeMember objects that will return the result of SBTypeMember::IsBitfield(), and "bitfield_bit_size" which will return the result of SBTypeMember::GetBitfieldSizeInBits();
I also fixed "SBTypeMember::GetOffsetInBytes()" to return the correct byte offset.
llvm-svn: 161091
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
event loop.
Convert from calling Halt in the lldb Driver.cpp's input reader's sigint handler to sending this AsyncInterrupt so it can be handled in the
event loop.
If you are attaching and get an async interrupt, abort the attach attempt.
Also remember to destroy the process if get interrupted while attaching.
Getting this to work also required handing the eBroadcastBitInterrupt in a few more places in Process WaitForEvent & friends.
<rdar://problem/10792425>
llvm-svn: 160903
|
|
|
|
|
|
| |
process if it exists OR wait for it" without race conditions. Use that in lldb.
llvm-svn: 160578
|
|
|
|
|
|
| |
since that's the one that "thread list" shows and it won't get reused even if the underlying system thread ID gets reused.
llvm-svn: 160187
|
|
|
|
|
|
| |
property help show up by declaring the properties correctly. We previosly declared properties into a local "x" variable, what I didn't realize is that the help will use this as the property name for the help output.
llvm-svn: 159468
|
|
|
|
|
|
|
|
| |
when DebugSymbols isn't used to find the dSYM. We now parse the plist as XML in the MacOSX symbol vendor.
Added the ability to get a section load address given a target which is needed for a previous checking which saves crashlogs.
llvm-svn: 159298
|
|
|
|
|
|
|
|
| |
range in a block given an address. Since blocks can have multiple discontiguous ranges, it helps to be able to get the current address range for the current block in a frame. This can be used in code like:
curr_block_range = lldb.frame.block.range[lldb.frame.addr]
llvm-svn: 159289
|
|
|
|
|
|
| |
threads in a process.
llvm-svn: 159288
|
|
|
|
|
|
|
|
| |
overwrite the status of the result if
the python command has set it.
llvm-svn: 159273
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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".
llvm-svn: 158235
|
|
|
|
|
|
|
|
|
|
|
| |
Refactorings of watchpoint creation APIs so that SBTarget::WatchAddress(), SBValue::Watch(), and SBValue::WatchPointee()
now take an additional 'SBError &error' parameter (at the end) to contain the reason if there is some failure in the
operation. Update 'watchpoint set variable/expression' commands to take advantage of that.
Update existing test cases to reflect the API change and add test cases to verify that the SBError mechanism works for
SBTarget::WatchAddress() by passing an invalid watch_size.
llvm-svn: 157964
|
|
|
|
|
|
| |
to be more clear.
llvm-svn: 157506
|
|
|
|
| |
llvm-svn: 157405
|
|
|
|
|
|
|
|
| |
builder to have an explicit
short-circuit of the Python SWIG building, rather than relying on the SDKROOT being set.
llvm-svn: 157363
|
|
|
|
|
|
|
|
| |
through the Python scripting bridge.
Add/modify some test cases.
llvm-svn: 157353
|