forked from OSchip/llvm-project
62b2317fd8
Added support for gdb remote protocol capture/playback where there is a query/multiple-response pattern. The new playback entry supports: - a general query command (key: next_query or query) - an optional first-query command if that differs from the subsequent queries (key: first_query) - an end regex for matching anything that would signify that the query/multi-response iteration has come to an end. An assumption is that the end regex is not a content package we care about aside from ending the iteration. (key: end_regex) - an optional 0-based index appended to the end of the query command (key: append_iteration_suffix), default: False. - a key used to collect responses from the query. Any response from the gdb remote that doesn't match the end-of-iteration regex is captured in the playback context dictionary using the key specified. That key will be an array, where each array entry is one of the responses from the query/multi-response iteration. (key: save_key). - a runaway response value, defaulting to 10k, where if this many responses is captured, assume the ending condition regex is invalid, or the debug monitor is doing something goofy that is going to blow out memory or time. (key: runaway_response_count, default: 10000) See the lldbgdbserverutils.MultiResponseGdbRemoteEntry class for details. A MultiResponseGdbRemoteEntry is added by adding an element to the GdbRemoteTestSequence (via GdbRemoteTestSequence.add_log_lines), using a dictionary, where the "type" key is set to "multi_response", and the rest of the keys in the dictionary entry are set to the keys documented for MultiResponseGdbRemoteEntry. Added helper functions to add the required entry to grab all qRegisterInfo responses. Added another helper to parse the qRegisterInfo response packets into an array of dictionaries, where each key:value in the dictionary comes from the register info response packet. Added a test to verify that a generic register exists for the program counter, frame pointer, stack pointer and cpu flags across all register info responses. Added a test to verify that at least one register set exists across all register info responses. llvm-svn: 209170 |
||
---|---|---|
.. | ||
api | ||
arm_emulation | ||
attic | ||
benchmarks | ||
example | ||
expression_command | ||
functionalities | ||
help | ||
lang | ||
linux/builtin_trap | ||
logging | ||
macosx | ||
make | ||
pexpect-2.4 | ||
plugins | ||
python_api | ||
settings | ||
source-manager | ||
terminal | ||
tools/lldb-gdbserver | ||
types | ||
unittest2 | ||
warnings/uuid | ||
.categories | ||
CMakeLists.txt | ||
Makefile | ||
README-TestSuite | ||
argparse_compat.py | ||
bench-history | ||
bench.py | ||
blacklist.py | ||
crashinfo.c | ||
dosep.ty | ||
dotest.py | ||
lldbbench.py | ||
lldbtest.py | ||
lldbutil.py | ||
progress.py | ||
redo.py |