summaryrefslogtreecommitdiff
path: root/include/lldb/Utility/AnsiTerminal.h
AgeCommit message (Collapse)Author
2019-08-21[NFC] Remove lldb_utility namespace.Jonas Devlieghere
While generating the Doxygen I noticed this lone namespace that has one class and one function in it. This moves them into lldb_private. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@369485 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-19Update the file headers across all of the LLVM projects in the monorepoChandler Carruth
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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@351636 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-16Fix some crashes and deadlocks in FormatAnsiTerminalCodesRaphael Isemann
Summary: This patch fixes a few problems with the FormatAnsiTerminalCodes function: * It does an infinite loop on an unknown color value. * It crashes when the color value is at the end of the string. * It deletes the first character behind the color token. Also added a few tests that reproduce those problems (and test some other corner cases). Reviewers: davide, labath Reviewed By: labath Subscribers: labath, lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D49307 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@337189 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-21[modules] Fix missing includes/typo in LLDB's includes. [NFC]Raphael Isemann
Summary: This patch adds missing includes to the LLDB headers inside `include/` as a first step of building LLDB's source with C++ modules. It also fixes this single `stds::` typo. Some quick map why some non-obvious includes were necessary: * lldb/lldb-defines.h for LLDB_INVALID_ADDRESS * lldb/lldb-types.h for addr_t * lldb/lldb-defines.h for DISALLOW_COPY_AND_ASSIG * lldb/DataFormatters/TypeSynthetic.h for SyntheticChildrenFrontEnd Reviewers: aprantl Reviewed By: aprantl Subscribers: zturner, lldb-commits Differential Revision: https://reviews.llvm.org/D42340 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@323064 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-23Update the prompt related functions to use StringRefs.Zachary Turner
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@282269 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-06*** This commit represents a complete reformatting of the LLDB source codeKate Stone
*** 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@280751 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-19Added the concept of a Read-Eval-Print-Loop to LLDB.Sean Callanan
A REPL takes over the command line and typically treats input as source code. REPLs can also do code completion. The REPL class allows its subclasses to implement the language-specific functionality without having to know about the IOHandler-specific internals. Also added a PluginManager-based way of getting to a REPL given a language and a target. Also brought in some utility code and expression options that are useful for REPLs, such as line offsets for expressions, ANSI terminal coloring of errors, and a few IOHandler convenience functions. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@250753 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-04Get rid of Debugger::FormatPrompt() and replace it with the new FormatEntity ↵Greg Clayton
class. Why? Debugger::FormatPrompt() would run through the format prompt every time and parse it and emit it piece by piece. It also did formatting differently depending on which key/value pair it was parsing. The new code improves on this with the following features: 1 - Allow format strings to be parsed into a FormatEntity::Entry which can contain multiple child FormatEntity::Entry objects. This FormatEntity::Entry is a parsed version of what was previously always done in Debugger::FormatPrompt() so it is more efficient to emit formatted strings using the new parsed FormatEntity::Entry. 2 - Allows errors in format strings to be shown immediately when setting the settings (frame-format, thread-format, disassembly-format 3 - Allows auto completion by implementing a new OptionValueFormatEntity and switching frame-format, thread-format, and disassembly-format settings over to using it. 4 - The FormatEntity::Entry for each of the frame-format, thread-format, disassembly-format settings only replaces the old one if the format parses correctly 5 - Combines all consecutive string values together for efficient output. This means all "${ansi.*}" keys and all desensitized characters like "\n" "\t" "\0721" "\x23" will get combined with their previous strings 6 - ${*.script:} (like "${var.script:mymodule.my_var_function}") have all been switched over to use ${script.*:} "${script.var:mymodule.my_var_function}") to make the format easier to parse as I don't believe anyone was using these format string power user features. 7 - All key values pairs are defined in simple C arrays of entries so it is much easier to add new entries. These changes pave the way for subsequent modifications where we can modify formats to do more (like control the width of value strings can do more and add more functionality more easily like string formatting to control the width, printf formats and more). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@228207 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-23Add ${ansi.XX} parsing to lldb prompt, use-color setting, and -no-use-colors ↵Michael Sartain
command line options. settings set use-color [false|true] settings set prompt "${ansi.bold}${ansi.fg.green}(lldb)${ansi.normal} " also "--no-use-colors" on the command prompt git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182609 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Added the ability to run expressions in any command. Expressions can be Greg Clayton
inserted in commands by using backticks: (lldb) memory read `$rsp-16` `$rsp+16` (lldb) memory read -c `(int)strlen(argv[0])` `argv[0]` The result of the expression will be inserted into the command as a sort of preprocess stage where this gets done first. We might need to tweak where this preprocess stage goes, but it is very functional already. Added ansi color support to the Debugger::FormatPrompt() so you can use things like "${ansi.fg.blue}" and "${ansi.bold}" many more. This helps in adding colors to your prompts without needing to know the ANSI color code strings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141948 91177308-0d34-0410-b5e6-96231b3b80d8