diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-01-31 14:24:39 +0100 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2013-01-31 15:48:31 +0100 |
commit | 72421c18c1f597755f9bd7a4d62751858a935c8b (patch) | |
tree | 46281231e1690cafc83e544089393cbc590dd1ac /src/libs/qtcreatorcdbext/qtcreatorcdbextension.cpp | |
parent | 9c96a5a971033e4e9124dd2068b14ded03b5f2da (diff) | |
download | qt-creator-72421c18c1f597755f9bd7a4d62751858a935c8b.tar.gz |
CDB: Pass settings maxStringLength and maxStackDepth to extension.
Change-Id: I602aa3758817026c8b4cbda1cc9fa9eff95fc691
Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/libs/qtcreatorcdbext/qtcreatorcdbextension.cpp')
-rw-r--r-- | src/libs/qtcreatorcdbext/qtcreatorcdbextension.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/libs/qtcreatorcdbext/qtcreatorcdbextension.cpp b/src/libs/qtcreatorcdbext/qtcreatorcdbextension.cpp index 87a98980dd..42293be33b 100644 --- a/src/libs/qtcreatorcdbext/qtcreatorcdbextension.cpp +++ b/src/libs/qtcreatorcdbext/qtcreatorcdbextension.cpp @@ -110,7 +110,8 @@ enum Command { CmdAddWatch, CmdWidgetAt, CmdBreakPoints, - CmdTest + CmdTest, + CmdSetParameter }; static const CommandDescription commandDescriptions[] = { @@ -172,7 +173,8 @@ static const CommandDescription commandDescriptions[] = { {"addwatch","Add watch expression","<iname> <expression>"}, {"widgetat","Return address of widget at position","<x> <y>"}, {"breakpoints","List breakpoints with modules","[-h] [-v]"}, -{"test","Testing command","-T type | -w watch-expression"} +{"test","Testing command","-T type | -w watch-expression"}, +{"setparameter","Set parameter","maxStringLength=value maxStackDepth=value"} }; typedef std::vector<std::string> StringVector; @@ -893,6 +895,34 @@ extern "C" HRESULT CALLBACK idle(CIDebugClient *client, PCSTR) return S_OK; } +// Extension command 'setparameter': +// Parse a list of parameters: 'key=value' + +extern "C" HRESULT CALLBACK setparameter(CIDebugClient *, PCSTR args) +{ + int token; + StringVector tokens = commandTokens<StringVector>(args, &token); + const size_t count = tokens.size(); + size_t success = 0; + for (size_t i = 0; i < count; ++i) { + const std::string &token = tokens.at(i); + const std::string::size_type equalsPos = token.find('='); + if (equalsPos != std::string::npos) { + const std::string value = token.substr(equalsPos + 1, token.size() - 1 - equalsPos); + if (!token.compare(0, equalsPos, "maxStringLength")) { + if (integerFromString(value, &ExtensionContext::instance().parameters().maxStringLength)) + ++success; + } else if (!token.compare(0, equalsPos, "maxStackDepth")) { + if (integerFromString(value, &ExtensionContext::instance().parameters().maxStackDepth)) + ++success; + } + } + } + if (success != count) + DebugPrint() << "Errors parsing setparameters command '" << args << '\''; + return S_OK; +} + // Extension command 'help': // Display version |