summaryrefslogtreecommitdiffstats
path: root/lldb/examples/python
Commit message (Collapse)AuthorAgeFilesLines
* [Examples] Move structured-data unpacking out of the loop. (NFC)Jonas Devlieghere2019-11-221-1/+1
| | | | There's no need to repeat this work in the loop.
* [Examples] Add in_call_stack breakpoint function.Jonas Devlieghere2019-11-221-0/+24
| | | | | | | | | | | | | | | | | | | | | The in_call_stack Python script makes it possible to modify the last breakpoint to only stop if a given function is present in the call stack. It will check both the symbol name and the function name (coming from the debug info, in case the binary is stripped). To use this, you have to: 1. Import the script into lldb. (lldb) command script import in_call_stack.py 2. Set a breakpoint and use the in_call_stack alias. (lldb) b foo (lldb) in_call_stack bar Note that this alias operates on the last set breakpoint. You can re-run the in_call_stack command to modify the condition.
* crashlog.py: Improve regular expressionsAdrian Prantl2019-11-071-8/+22
| | | | | | | | | | | | | | | | | | | This is yet another change to the regular expressions in crashlog.py that fix a few edge cases, and attempt to improve the readability quite a bit in the process. My last change to support spaces in filenames introduced a bug that caused the version/archspec field to be parsed as part of the image name. For example, in "0x1111111 - 0x22222 +MyApp Pro arm64 <01234>", the name of the image was recognized as "MyApp Pro arm64" instead of "MyApp Pro" with a "version" of arm64. The bugfix makes the space following an optional field mandatory *inside* the optional group. rdar://problem/56883435 Differential Revision: https://reviews.llvm.org/D69871
* [Symbolication] Remove some dead code. Nothing exciting.Davide Italiano2019-07-291-2/+0
| | | | llvm-svn: 367262
* [Symbolication] Remove a duplicate assignment.Davide Italiano2019-07-291-1/+0
| | | | llvm-svn: 367261
* [Symbolication] Fix unicode compatibility between 2 and 3.Davide Italiano2019-07-291-1/+1
| | | | | | | | | Triples are always ASCII for now, but we were handed out a unicode object. <rdar://problem/53592772> llvm-svn: 367260
* [crashlog] Fix a mismatch between bytes and strings.Davide Italiano2019-07-091-1/+1
| | | | | | | | | The functions in read_plist() want bytes as input, not strings. <rdar://problem/52600712> llvm-svn: 365416
* Use the // integer divide operator in these Jason Molenda2019-06-262-2/+2
| | | | | | target definition files, like Davide's change to x86_64_target_definition.py. llvm-svn: 364481
* [x86-64] Use `//` for integer division in the target definition.Davide Italiano2019-06-261-1/+1
| | | | | | | | This forces integer division and works with python 2 and python 3. <rdar://problem/52073911> llvm-svn: 364465
* Python 3: decode string as utf-8 to avoid type mismatch.Adrian Prantl2019-06-141-5/+5
| | | | | | | | rdar://problem/51464644 Differential Revision: https://reviews.llvm.org/D63311 llvm-svn: 363413
* Make crashlog.py less noisyAdrian Prantl2019-06-141-9/+27
| | | | | | | | | | | For end-users there is no point in printing dSYM load errors for system frameworks, since they will all fail and there's nothing they can do about it. This patch hides them by default and shows them when --verbose is present. Differential Revision: https://reviews.llvm.org/D63310 llvm-svn: 363412
* [lldb] Ignore null frames in lldb.macosx crashlogStefan Granitz2019-06-121-0/+4
| | | | llvm-svn: 363172
* [crashlog] Add a missing call to decode.Davide Italiano2019-05-301-1/+1
| | | | | | <rdar://problem/51139357> llvm-svn: 362044
* [crashlog] Use loads() instead of readPlistFromString() for python 3.Davide Italiano2019-05-181-1/+7
| | | | | | <rdar://problem/50903413> llvm-svn: 361087
* [Python] Simplify the code. NFCI.Davide Italiano2019-04-184-24/+8
| | | | llvm-svn: 358721
* [crashlog] Strip trailing `\n` from check_output return.Davide Italiano2019-04-181-1/+1
| | | | | | | | Generally having spurious `\n` doesn't matter, but here the returning string is a command which is executed, so we want to strip it. Pointed out by Jason. llvm-svn: 358717
* [crashlog] Use the right path for dsymforUUID and remove an unnecessary import.Davide Italiano2019-04-171-6/+1
| | | | | | <rdar://problem/49925960> llvm-svn: 358615
* python 2/3 compat: commands vs subprocessSerge Guelton2019-03-268-15/+26
| | | | | | Differential Revision: https://reviews.llvm.org/D59584 llvm-svn: 356995
* Python 2/3 compat: StringIOSerge Guelton2019-03-251-2/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D59582 llvm-svn: 356910
* Python 2/3 compat: tkinterSerge Guelton2019-03-251-2/+7
| | | | | | Differential Revision: https://reviews.llvm.org/D59586 llvm-svn: 356909
* Python 2/3 compatibility: from __future__ import print_functionSerge Guelton2019-03-2124-520/+546
| | | | | | Differential Revision: https://reviews.llvm.org/D59580 llvm-svn: 356695
* Workaround items/iteritems difference between Python2 and Python3Serge Guelton2019-03-211-1/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D59588 llvm-svn: 356673
* Portable int/long conversion across Python 2 / Python 3Serge Guelton2019-03-211-1/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D59585 llvm-svn: 356671
* Portable exception value access across Python 2 / Python 3Serge Guelton2019-03-211-1/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D59583 llvm-svn: 356670
* A target definition file that may work for Jason Molenda2019-03-181-0/+140
| | | | | | | | Aarch32 Cortex-M target processor debugging. <rdar://problem/48448564> llvm-svn: 356416
* crashlog.py: Catch exception from subprocess.Adrian Prantl2019-03-071-1/+5
| | | | llvm-svn: 355572
* [Python] Unbreak the recently modified tests for python 2.Davide Italiano2019-03-062-0/+2
| | | | llvm-svn: 355566
* [testsuite] Port crashlog to python 3, second attempt.Davide Italiano2019-03-062-98/+97
| | | | llvm-svn: 355562
* Revert "[testsuite] Port crashlog and dependencies to Python 3."Davide Italiano2019-03-052-110/+101
| | | | | | | This revert the commit because it broke the bots. I need to find a way that works with both versions. llvm-svn: 355364
* [testsuite] Port crashlog and dependencies to Python 3.Davide Italiano2019-03-052-101/+110
| | | | | | Fixes three tests in the testsuite. llvm-svn: 355359
* Fix use of non-existing variable in crashlog.pyShafik Yaghmour2019-01-311-1/+1
| | | | | | | | | Summary: The method find_matching_slice(self) uses uuid_str on one of the paths but the variable does not exist and so this results in a NameError exception if we take that path. Differential Revision: https://reviews.llvm.org/D57467 llvm-svn: 352772
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-193-12/+9
| | | | | | | | | | | | | | | | | to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
* Make crashlog.py work or binaries with spaces in their namesAdrian Prantl2018-12-171-21/+10
| | | | | | | | | | | | This is a little dangerous since the crashlog files aren't 100% unambiguous, but the risk is mitigated by using a non-greedy +? pattern. rdar://problem/38478511 Differential Revision: https://reviews.llvm.org/D55608 llvm-svn: 349367
* Make crashlog.py work when a .dSYM is present, but a binary is missingAdrian Prantl2018-12-171-15/+37
| | | | | | | | | | Often users have a crash log an d a .dSYM bundle, but not the original application binary. It turns out that for crash symbolication, we can safely fall back to using the binary inside the .dSYM bundle. Differential Revision: https://reviews.llvm.org/D55607 llvm-svn: 349366
* Fixes for GDB remote packet disassembler:Greg Clayton2018-09-271-59/+131
| | | | | | | | - Add latency timings to GDB packet log summary if timestamps are on log - Add the ability to plot the latencies for each packet type with --plot - Don't crash the script when target xml register info is in wierd format llvm-svn: 343243
* Add an interactive mode to BSD archive parser.Greg Clayton2018-09-271-11/+94
| | | | llvm-svn: 343242
* Update cmdtemplate.py to use best pratices.Greg Clayton2018-06-221-53/+78
| | | | | | | | | | Fixes include: - fix all lint errors - add code that will automatically register and LLDB command classes by detecting the classes and any classes that have a "register_lldb_command" function - automatically fill in the correct module name when registering commands - automatically fill in the class name when registering command llvm-svn: 335401
* Added a BSD archive tool.Greg Clayton2018-04-021-0/+481
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a combination stand alone BSD archive tool that can dump BSD archives: % bsd.py /path/to/foo.a Search archives for an object file: % bsd.py --object foo.o bar.a Dump the symbol definitions found in the __.SYMDEF objects: % bsd.py --symdef bar.a Find symbols by name that are listed in the __.SYMDEF objects: % bsd.py --symbol _Z123 bar.a Extract objects from BSD archives: % bsd.py --object foo.o bar.a --extract % bsd.py --object foo.o bar.a --extract --outfile /tmp/foo.o % bsd.py --object foo.o bar.a --extract --mtime 0x1234556 It also has installs a new LLDB command line command when imported into LLDB: (lldb) command script import ~/Dropbox/bin/bsd.py The "verify-debug-map-objects" command has been installed, type "help verify-debug-map-objects" for detailed help. (lldb) verify-debug-map-objects a.out This will iterate through all object files and verify the modification times match for any .o files, it will verify any .o files from BSD archives are found and have matching modification times and print out errors if any are found. llvm-svn: 328990
* Fixed up to use a class for the commands, renamed the commands and added a ↵Greg Clayton2017-11-161-68/+181
| | | | | | way to just dump the compile unit full paths and optionally their support files with the new "dump-files"command. llvm-svn: 318424
* Modernize the example cmdtemplate.py.Jim Ingham2017-10-311-85/+95
| | | | | | | | This version relies on a newer and more convenient way to use a class to implement a command. It has been in place since early 2015, so it should be pretty safe to use. llvm-svn: 317043
* The save_crashlog command was still looking at lldb.target andJim Ingham2017-10-121-6/+7
| | | | | | | lldb.process. That hasn't worked for a long time. Convert it to the form that takes an SBExecutionContext and use that instead. llvm-svn: 315549
* Another silly little thing you can do with Python commands.Jim Ingham2017-10-051-0/+24
| | | | | | | | | Sometimes you want to step along and print a local each time as you go. You can do that with stop hooks, but that's a little heavy-weight. This is a sketch of a command that steps and then does "frame variable" on all its arguments. llvm-svn: 314958
* Add an example command to toggle between disassembly-only and source mode.Jim Ingham2017-04-201-0/+48
| | | | | | | | Sometimes you are debugging in source, but you really only want to see the disassembly. That's easy to do but you have to set a few variables. This command toggles between your old values, and a disassembly only mode. llvm-svn: 300902
* Fixed to disassemble new packets and fixed the dumping of the 'x' packets.Greg Clayton2017-04-141-12/+41
| | | | llvm-svn: 300341
* Print the error if dsymForUUID sometimes produces bad plists.Jim Ingham2017-03-281-1/+5
| | | | | | | Not much we can do about it but at least we can print the bad plist and the error. llvm-svn: 298958
* Improve crashlog.py so it can handle more iOS crashlog files.Greg Clayton2016-12-081-0/+11
| | | | | | <rdar://problem/29191857> llvm-svn: 289006
* *** This commit represents a complete reformatting of the LLDB source codeKate Stone2016-09-0631-3460/+6218
| | | | | | | | | | | | | | | | | | | | | | | *** to conform to clang-format’s LLVM style. This kind of mass change has *** two obvious implications: Firstly, merging this particular commit into a downstream fork may be a huge effort. Alternatively, it may be worth merging all changes up to this commit, performing the same reformatting operation locally, and then discarding the merge for this particular commit. The commands used to accomplish this reformatting were as follows (with current working directory as the root of the repository): find . \( -iname "*.c" -or -iname "*.cpp" -or -iname "*.h" -or -iname "*.mm" \) -exec clang-format -i {} + find . -iname "*.py" -exec autopep8 --in-place --aggressive --aggressive {} + ; The version of clang-format used was 3.9.0, and autopep8 was 1.2.4. Secondly, “blame” style tools will generally point to this commit instead of a meaningful prior commit. There are alternatives available that will attempt to look through this change and find the appropriate prior commit. YMMV. llvm-svn: 280751
* Mention is_stale in the scripted step doc.Jim Ingham2016-08-051-7/+29
| | | | llvm-svn: 277884
* Fixup the "shadow" example command to use the function that takes an ↵Greg Clayton2016-06-281-28/+26
| | | | | | | | | | | execution context now that the @lldb.command decorator does the right thing for the command function that takes 5 arguments. A few fixes: - Check the process state to make sure it is stopped - Grab the frame from the "exe_ctx" so this will work during breakpoint callbacks - Print out the SBDeclaration objects of the variables that shadow each other so we can see the source locations of which variable declarations are shodowing each other. llvm-svn: 273963
* Added a new python example which installs a command called "shadow". Greg Clayton2016-06-231-0/+59
| | | | | | This shows how to grab individual blocks from stack frames and get only the variables from those blocks. It then will iterate over all of the parent blocks and look for shadowed variables. llvm-svn: 273604
OpenPOWER on IntegriCloud