History log of /external/lldb/examples/python/crashlog.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4bb82ac1db085a11d22df3dff6def07119643255 05-Apr-2013 Greg Clayton <gclayton@apple.com> <rdar://problem/13477795>

crashlog.py was always subtracting 1 to point to the previous instruction when symbolicating ARM backtraces. Many times the backtraces will include bit zero set to 1 to indicate thumb, so we need to make sure we mask the address and then backup one for non frame zero frames.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
4d258c616e9166fbb8336f77b588e5e2c5332c14 12-Jan-2013 Sean Callanan <scallanan@apple.com> Made crashlog.py handle cases where a parent
process's name contains spaces. Thanks to
Justin Seyster for the patch.

<rdar://problem/13002540>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
5ec0d02ae49a90ffc840b5f0ac9d6ba921d0942d 19-Sep-2012 Greg Clayton <gclayton@apple.com> Added auto LLDB import to the crashlog script.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
8b4bc2b81f72f3bdc47b9d492197e5ed7718c402 01-Sep-2012 Jason Molenda <jmolenda@apple.com> Make the tab character in the thread frame lines optional.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
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
/external/lldb/examples/python/crashlog.py
17d4a7f296122b43fe015771fa375a52f9d97798 29-Aug-2012 Jason Molenda <jmolenda@apple.com> Instead of using re.split and requiring two spaces between the "regname: regvalue" pairs,
use re.findall and specify the regexp of regname: regvalue that we're interested in.
<rdar://problem/12188752>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
40819bf6f7d3c2ed0c00877f9dc9efbf44beabb7 13-Aug-2012 Greg Clayton <gclayton@apple.com> <rdar://problem/12087275>

Make the crashlog parser able to deal with spaces in the process name.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
a838b421d5de1925ed7c1ca783796b8a0cfc5ed8 16-Jul-2012 Greg Clayton <gclayton@apple.com> Enable the "symbolicate" interactive command to symbolicate all crash logs if no indexes are supplied. This can be handy to use as:

(lldb) script import lldb.macosx.crashlog
(lldb) crashlog -i /tmp/*.crash
% symbolicate --crashed-only

This will symbolicate all of the crash logs only for the crashed thread.

Also print out the crash log index number in the output of the interactive "image" command:

(lldb) script import lldb.macosx.crashlog
(lldb) crashlog -i /tmp/*.crash
% image LLDB.framework
...

This then allows you to symbolicate a crash log by index accurately when you looked for an image of a specific version



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
007f73a55393839e9c977a4ec8c06d5721eaba06 13-Jul-2012 Greg Clayton <gclayton@apple.com> Show source by default for the first 4 frames of the crash thread. Also added options to allow showing source for all frames (--source-frames=NFRAMES) and for all threads (--source-all).



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
aa7df343b30d147fe7755b407f631726ed1fe0f9 13-Jul-2012 Greg Clayton <gclayton@apple.com> Added the ability to see source context with each frame in the "crashlog" command with the "--source-context" (-C for short to match grep) option.

Also made the symbolication of the crash logs more efficient when using the "--crashed-only" ("-c") option where only the crashed thread is symbolicated. We now only download the images for the frames in the crashed thread.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
dcf561419ff815256d63dedeba06d9b5c969702a 03-Jul-2012 Greg Clayton <gclayton@apple.com> Make the interactive command interpreter build into the "crashlog" command work correctly when run inside LLDB. Before this fix the "cmd.Cmd" object was trying to read from stdin itself and it was competing without command interpreter for the bytes.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
2b69a2bac83a9163903934eedd1a2264e8558f8b 28-Jun-2012 Greg Clayton <gclayton@apple.com> Listen to the "--verbose" flag when running "crashlog" and if verbose is enabled, then dump full paths to source files and modules.

Changed much of the output that was coming out with "--verbose" over to use the new "--debug" flag.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
ca1500f43dc65a0234dd4e8fb129ea366d512cc5 27-Jun-2012 Greg Clayton <gclayton@apple.com> Added a "save_crashlog" command to the lldb.macosx.crashlog package that allow you to dump your current process state out to a crash log file. This will dump all of the target module information with all load addresses, UUID values, and shared library paths, as well as all thread stacks and the crash log header. This will make it easy for us to save the current state of a process and then reload it later into LLDB.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
1b62f5967aa04ebde2ae163f12c739a6740596e2 05-Jun-2012 Greg Clayton <gclayton@apple.com> Cleaned up some stuff in symbolication where we can now lazily get images when symbolicating after loading a crash log file.

Added colorization to the gdbremote.py output and also added the ability to symbolicate the addresses in registers.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
a3368ddf9c2cc0b29fb7d329b5f6dfe5a7443b1d 31-May-2012 Greg Clayton <gclayton@apple.com> Added the ability to run "symbolicate [options] <crashlog-index>" in interactive mode.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
eb4cd8dca73dd680df6cdd293c0514cb159736c7 17-May-2012 Greg Clayton <gclayton@apple.com> Make sure to subtract one from the PC when doing the symbolication of stack frames when it isn't the zero'th frame.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
35f62f8ff21c41cd6812704cf3c8c79f8755fef7 16-May-2012 Greg Clayton <gclayton@apple.com> Fixed an exception when parsing crash logs.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
d8056e20e5a06bd0f7185f962fda3f5a179f71ab 11-May-2012 Greg Clayton <gclayton@apple.com> Modified the symbolication.Image object to store its uuid as a uuid.UUID object and made an accessor for getting a normalized UUID value out of the image object.

Modified the crashlog darwin module to always create a uuid.UUID object when making the symbolication.Image objects. Also modified it to handle some more types of crash log files and improved the register reading for thread registers of crashed threads.




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
2bb4de34c39f13a0d2ec3e96bc82d804a92395a3 11-May-2012 Johnny Chen <johnny.chen@apple.com> Make crashlog.py more robust when dealing with the "Version: ..." header from the crash log file.

rdar://problem/11428134


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
9d01042727a9c52cbab76237c8d290f2e337067d 04-May-2012 Greg Clayton <gclayton@apple.com> Added an interactive mode to the "crashlog" command so that we can look at multiple crash logs at once and do some data mining. Added an interactive command prompt that allows you to do:

% PYTHONPATH=./build/Debug/LLDB.framework/Resources/Python ; ./build/Debug//LLDB.framework/Resources/Python/lldb/macosx/crashlog.py -i ~/Downloads/crashes2/*.crash )

then you get an interactive prompt where you can search for data within all crash logs. For example you can do:

% list

which will list all crash logs

And you can search for all images given an image basename, or full path:

% image LLDB
% image /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB
% image LLDB.framework

Which would all produce an output listing like:

40CD4430-7D27-3248-BE4C-71B1F36FC5D0 (1.132 - 132) /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB, __TEXT=[0x000000011f8bc000 - 0x0000000120d3efbf)
B727A528-FF1F-3B20-9E4F-BBE96C7D922D (1.136 - 136) /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB, __TEXT=[0x000000011e7f7000 - 0x000000011fc7ff87)
4D6F8DC2-5757-39C7-96B0-1A5B5171DC6B (1.137 - 137) /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB, __TEXT=[0x000000012bd7f000 - 0x000000012d1fcfef)
FBF8786F-92B9-31E3-8BCD-A82148338966 (1.137 - 137) /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB, __TEXT=[0x0000000122d78000 - 0x00000001241f5fd7)
7AE082E3-3BB7-3F64-A308-063E559DFC45 (1.143 - 143) /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB, __TEXT=[0x0000000119b8d000 - 0x000000011b02ef5f)
7AE082E3-3BB7-3F64-A308-063E559DFC45 (1.143 - 143) /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB, __TEXT=[0x0000000111497000 - 0x0000000112938f5f)
7AE082E3-3BB7-3F64-A308-063E559DFC45 (1.143 - 143) /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB, __TEXT=[0x0000000116680000 - 0x0000000117b21f5f)





git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
a889aee9354d532a250a8c5b8661a6c6f191297f 04-May-2012 Johnny Chen <johnny.chen@apple.com> Fix the following error when importing crashlog.py from a Python interactive session:

AttributeError: 'module' object has no attribute 'debugger'


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
4e46867681f2a3a4587273228dbfac0030942a24 03-May-2012 Johnny Chen <johnny.chen@apple.com> Fix AttributeError when using crashlog with verbose mode.

rdar://problem/11374653


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
1dae6f39248e38ac84fc20c8b4c26e11bfcc19b7 25-Apr-2012 Greg Clayton <gclayton@apple.com> Remove the "-x" from the finish-swig-Python-LLDB.sh shell options so it doesn't print out all of the commands when executing the shell script.

Cleaned up the lldb.utils.symbolication, lldb.macosx.heap and lldb.macosx.crashlog. The lldb.macosx.heap can now build a dylib for the current triple into a temp directory and use it from there.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
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
/external/lldb/examples/python/crashlog.py
4c983c8b32996ac4543dcd95d76a0ecbeb1c6bbd 21-Apr-2012 Greg Clayton <gclayton@apple.com> Fixed some issues with symbolicating things. Fixed symbolication.add_module() to not use the resolved_path before we have tried to locate it. Fixed crashlog.locate_module_and_debug_symbols() to return true and false correctly.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
3d39f83d308f4c147cff81e07c8059eb52dab89d 03-Apr-2012 Greg Clayton <gclayton@apple.com> Added a platform agnostic symbolication python module that can be used by any targets. Then modified the darwin "crashlog.py" to use this agnostic info and the new functionality and classes.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
002945cd6948a78dfafb74aa3988db909d844ee8 20-Mar-2012 Greg Clayton <gclayton@apple.com> Added a fix to the crash log script that allows you to locate and load a binary from any location and _then_ do the symbolication. Something like:

(lldb) file /path/to/file.so
(lldb) crashlog crash.log
....

Then if the file.so has already been loaded it will use the one that is already in LLDB without trying to match up the paths.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
2c1fdd0057d32ee62bb8315a8ec234080489c724 21-Jan-2012 Greg Clayton <gclayton@apple.com> Added options to specify how many instructions before and after the frame
PC to disassemble. Users can also specify the frame depth to disassemble to
and also if disassembly should happen for all threads.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
223e808ff04ddefb64861f8d8b99e1c6651a5222 21-Jan-2012 Greg Clayton <gclayton@apple.com> Use the "shlex" module to parse the command line that was passed down into
python so that single and double quotes and other standard shell like argument
parsing happens as expected before passing stuff along to option parsing.

Also handle exceptions so that we don't accidentally exit lldb if an uncaught
exception occurs.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
a3698c61d6c34bab696bf82e64062d1d0438d452 21-Jan-2012 Greg Clayton <gclayton@apple.com> Fixed it so the "--help" option works for the crashlog command. Corrected and
filled out the command help and removed unused options.

Updated the command to have a "--load-all" option that will cause the target
that gets created to locate and load all images specified in the Binary Images
section of the crash log to allow for complete program state to be matched
to that of the crash log, not just the images that were in the stack frames
(the default).




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
f7fb7334f7cae880fe25069921202961ffb2dc39 20-Jan-2012 Sean Callanan <scallanan@apple.com> Fixed a global reference that should have been
a reference to a class variable.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
e9ee550693aee8122d3d48b633fcff64e6a2f641 20-Jan-2012 Greg Clayton <gclayton@apple.com> Make the script work again from the command line as long as the PYTHONPATH
environment variable it set to include a path to lldb.py.

Also fixed the case where the executable can't be located and doesn't match
what is installed on the current system. It will still symbolicate the other
frames, and will just show what was originally in the crash log file.

Also removed the --crash-log option so the arguments to the "crashlog"
command are one or more paths to crash logs.

Fixed the script to "auto-install" itself when loaded from the embedded
script interpreter. Now you only need to import the module and the
command is ready for use.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
cd793121caadf8eac0b13283bc2caa4cd467aebf 20-Jan-2012 Greg Clayton <gclayton@apple.com> More fixed to verify if a file in the crash log is installed in the current
system and also deal with dsymForUUID being available on the network, locally,
and not at all.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
8077a5334dc4daef3a145d07307a970d00563055 20-Jan-2012 Greg Clayton <gclayton@apple.com> Improved the regular expressions to handle "+" characters being at the front
of the identifier name in the binary images section. Improved the regular
expression for the frames.

Added a new file "crashlog.lldb" which can be sourced with "command source"
that will import the module and set itself up to be used as a command.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py
01f7c96144d4604d1d120fb27643f9a29d6d1ba7 20-Jan-2012 Greg Clayton <gclayton@apple.com> Modified the symbolicate-crash.py so it can be imported into python as a
module (you can't import a module with a '-' in it) and also added a
Symbolcate(...) top level function so it can be imported and used as an
LLDB command.

Then you can import the module and map a "crashlog" command (for darwin
use only currently) to the python function "crashlog.Symbolicate":

(lldb) script import crashlog
(lldb) command script add -f crashlog.Symbolicate crashlog

Then use it to symbolicate:

(lldb) crashlog --crash-log /path/to/foo.crash

The crash log will then get symbolicated and inline frames will be added to
the crash log and the frames will be displayed. The crash log currently will
only try and fetch and setup the target images requires in order to do the
symbolication.

This will need to be iterated upon, but it is getting close to being useful
so I am going to check this in.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@148528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/examples/python/crashlog.py