llvm-project/lldb
Todd Fiala 62b2317fd8 Added gdb remote protocol tests across all qRegisterInfo responses.
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
2014-05-19 22:35:24 +00:00
..
docs Fix the quoting in my x packet documentation so it's 2014-05-13 22:21:34 +00:00
examples Fixed an issue where if you called: 2014-04-07 23:50:17 +00:00
include Introduce the concept of a "display name" for types 2014-05-17 19:14:17 +00:00
lib Attempt to fix the build 2014-04-25 09:49:32 +00:00
lldb.xcodeproj Revert r209142. 2014-05-19 18:30:48 +00:00
lldb.xcworkspace Move the performance test cases into their own project. 2013-03-18 23:05:00 +00:00
resources Update the lldb version number in the xcode project files from 310.99.0 to 320.99.0. 2014-01-10 06:12:10 +00:00
scripts Introduce the concept of a "display name" for types 2014-05-17 19:14:17 +00:00
source Don't allow two threads to both be in SBDebugger::Create() due to threading issues in FormatManager. 2014-05-19 20:42:14 +00:00
test Added gdb remote protocol tests across all qRegisterInfo responses. 2014-05-19 22:35:24 +00:00
tools Revert r209142. 2014-05-19 18:30:48 +00:00
utils LUI: Fix some issues causing crashes in the source view 2013-10-23 01:18:21 +00:00
www Remove obsolete CXX11 buld instructions 2014-05-03 15:05:40 +00:00
.arcconfig Adding .arcconfig file to LLDB to allow using Phabricator for reviews 2013-05-23 20:21:28 +00:00
.gitignore spruce up .gitignore 2014-03-18 04:43:49 +00:00
CMakeLists.txt build: use keyword signatures for link dependencies 2014-04-22 03:18:34 +00:00
INSTALL.txt Update INSTALL.txt to mention LLDB builds on Linux with GCC or Clang. 2013-02-21 22:37:18 +00:00
LICENSE.TXT
Makefile Add some missing defines that are already present in the cmake side. 2014-03-12 10:35:00 +00:00