History log of /external/lldb/source/Interpreter/PythonDataObjects.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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
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
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
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
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
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
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
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
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
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
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