History log of /external/lldb/examples/python/operating_system.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c55307b219ddca66c7763c178ee2cde3ee6cd234 25-Apr-2013 Greg Clayton <gclayton@apple.com> Remove a print statement that was left in accidentally.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/operating_system.py
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
/external/lldb/examples/python/operating_system.py
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
/external/lldb/examples/python/operating_system.py
75a4fe6f7734b786c663caa4e2fabe964d933c51 09-Jan-2013 Greg Clayton <gclayton@apple.com> Updated documentation on the "register_data_addr" key that can be supplied in the "thread" dictionary return value for the python OS plug-ins.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@171934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/operating_system.py
91a9f2127fa8b8e90f6ea1676d11f97f44ce22dd 25-Oct-2012 Greg Clayton <gclayton@apple.com> Allow operating system plug-ins to specify the address for registers so we don't have to create data up front.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/operating_system.py
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
/external/lldb/examples/python/operating_system.py
a69d2354effa6dfd57e42db969610d8869748bf0 12-Sep-2012 Greg Clayton <gclayton@apple.com> Added some documentation and an accessor for the target with an explanation of why to not use "lldb.target".



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/operating_system.py
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
/external/lldb/examples/python/operating_system.py
a63665a17f889d69384abc82311c671b9809419c 24-Aug-2012 Greg Clayton <gclayton@apple.com> We have a partially working OS plug-in through python!



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/operating_system.py
7ccb19a936e94c11ab1887737cae57f1cb9eabc1 24-Aug-2012 Enrico Granata <egranata@apple.com> Fixing an issue in the OS sample

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/operating_system.py
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
/external/lldb/examples/python/operating_system.py