Debugger[New CDB]: Split up long extension messages.

To accommodate the limitation of output line width of CDB.
This commit is contained in:
Friedemann Kleint
2011-01-04 12:40:52 +01:00
parent d9ec7dd0a6
commit b7df5467d8
8 changed files with 87 additions and 49 deletions

View File

@@ -235,9 +235,9 @@ extern "C" HRESULT CALLBACK pid(CIDebugClient *client, PCSTR args)
commandTokens<StringList>(args, &token);
if (const ULONG pid = currentProcessId(client)) {
ExtensionContext::instance().report('R', token, "pid", "%u", pid);
ExtensionContext::instance().report('R', token, 0, "pid", "%u", pid);
} else {
ExtensionContext::instance().report('N', token, "pid", "0");
ExtensionContext::instance().report('N', token, 0, "pid", "0");
}
return S_OK;
}
@@ -277,7 +277,7 @@ extern "C" HRESULT CALLBACK expandlocals(CIDebugClient *client, PCSTR args)
symGroup = ExtensionContext::instance().symbolGroup(exc.symbols(), exc.threadId(), frame, &errorMessage);
if (!symGroup) {
ExtensionContext::instance().report('N', token, "expandlocals", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "expandlocals", errorMessage.c_str());
return S_OK;
}
@@ -285,7 +285,7 @@ extern "C" HRESULT CALLBACK expandlocals(CIDebugClient *client, PCSTR args)
symGroup->expandListRunComplexDumpers(inames, SymbolGroupValueContext(exc.dataSpaces(), exc.symbols()), &errorMessage) :
symGroup->expandList(inames, &errorMessage);
ExtensionContext::instance().report('R', token, "expandlocals", "%u/%u %s",
ExtensionContext::instance().report('R', token, 0, "expandlocals", "%u/%u %s",
succeeded, unsigned(inames.size()), errorMessage.c_str());
return S_OK;
}
@@ -403,9 +403,9 @@ extern "C" HRESULT CALLBACK locals(CIDebugClient *client, PCSTR args)
int token;
const std::string output = commmandLocals(exc, args, &token, &errorMessage);
if (output.empty()) {
ExtensionContext::instance().report('N', token, "locals", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "locals", errorMessage.c_str());
} else {
ExtensionContext::instance().report('R', token, "locals", "%s", output.c_str());
ExtensionContext::instance().reportLong('R', token, "locals", output);
}
return S_OK;
}
@@ -454,9 +454,9 @@ extern "C" HRESULT CALLBACK dumplocal(CIDebugClient *client, PCSTR argsIn)
int token = 0;
const std::string value = dumplocalHelper(exc,argsIn, &token, &errorMessage);
if (value.empty()) {
ExtensionContext::instance().report('N', token, "dumplocal", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "dumplocal", errorMessage.c_str());
} else {
ExtensionContext::instance().report('R', token, "dumplocal", value.c_str());
ExtensionContext::instance().reportLong('R', token, "dumplocal", value);
}
return S_OK;
}
@@ -483,9 +483,9 @@ extern "C" HRESULT CALLBACK typecast(CIDebugClient *client, PCSTR args)
errorMessage = singleLineUsage(commandDescriptions[CmdTypecast]);
}
if (symGroup != 0 && symGroup->typeCast(iname, desiredType, &errorMessage)) {
ExtensionContext::instance().report('R', token, "typecast", "OK");
ExtensionContext::instance().report('R', token, 0, "typecast", "OK");
} else {
ExtensionContext::instance().report('N', token, "typecast", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "typecast", errorMessage.c_str());
}
return S_OK;
}
@@ -513,9 +513,9 @@ extern "C" HRESULT CALLBACK addsymbol(CIDebugClient *client, PCSTR args)
errorMessage = singleLineUsage(commandDescriptions[CmdAddsymbol]);
}
if (symGroup != 0 && symGroup->addSymbol(name, iname, &errorMessage)) {
ExtensionContext::instance().report('R', token, "addsymbol", "OK");
ExtensionContext::instance().report('R', token, 0, "addsymbol", "OK");
} else {
ExtensionContext::instance().report('N', token, "addsymbol", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "addsymbol", errorMessage.c_str());
}
return S_OK;
}
@@ -554,9 +554,9 @@ extern "C" HRESULT CALLBACK assign(CIDebugClient *client, PCSTR argsIn)
} while (false);
if (success) {
ExtensionContext::instance().report('R', token, "assign", "Ok");
ExtensionContext::instance().report('R', token, 0, "assign", "Ok");
} else {
ExtensionContext::instance().report('N', token, "assign", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "assign", errorMessage.c_str());
}
return S_OK;
}
@@ -578,9 +578,9 @@ extern "C" HRESULT CALLBACK threads(CIDebugClient *client, PCSTR argsIn)
exc.advanced(),
&errorMessage);
if (gdbmi.empty()) {
ExtensionContext::instance().report('N', token, "threads", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "threads", errorMessage.c_str());
} else {
ExtensionContext::instance().report('R', token, "threads", gdbmi.c_str());
ExtensionContext::instance().reportLong('R', token, "threads", gdbmi);
}
return S_OK;
}
@@ -598,9 +598,9 @@ extern "C" HRESULT CALLBACK registers(CIDebugClient *Client, PCSTR argsIn)
const bool humanReadable = !tokens.empty() && tokens.front() == "-h";
const std::string regs = gdbmiRegisters(exc.registers(), exc.control(), humanReadable, IncludePseudoRegisters, &errorMessage);
if (regs.empty()) {
ExtensionContext::instance().report('N', token, "registers", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "registers", errorMessage.c_str());
} else {
ExtensionContext::instance().report('R', token, "registers", regs.c_str());
ExtensionContext::instance().reportLong('R', token, "registers", regs);
}
return S_OK;
}
@@ -618,9 +618,9 @@ extern "C" HRESULT CALLBACK modules(CIDebugClient *Client, PCSTR argsIn)
const bool humanReadable = !tokens.empty() && tokens.front() == "-h";
const std::string modules = gdbmiModules(exc.symbols(), humanReadable, &errorMessage);
if (modules.empty()) {
ExtensionContext::instance().report('N', token, "modules", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "modules", errorMessage.c_str());
} else {
ExtensionContext::instance().report('R', token, "modules", modules.c_str());
ExtensionContext::instance().reportLong('R', token, "modules", modules);
}
return S_OK;
}
@@ -671,11 +671,11 @@ extern "C" HRESULT CALLBACK memory(CIDebugClient *Client, PCSTR argsIn)
}
if (memory.empty()) {
ExtensionContext::instance().report('N', token, "memory", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "memory", errorMessage.c_str());
} else {
ExtensionContext::instance().report('R', token, "memory", memory.c_str());
ExtensionContext::instance().reportLong('R', token, "memory", memory);
if (!errorMessage.empty())
ExtensionContext::instance().report('W', token, "memory", errorMessage.c_str());
ExtensionContext::instance().report('W', token, 0, "memory", errorMessage.c_str());
}
return S_OK;
}
@@ -704,9 +704,9 @@ extern "C" HRESULT CALLBACK stack(CIDebugClient *Client, PCSTR argsIn)
maxFrames, humanReadable, &errorMessage);
if (stack.empty()) {
ExtensionContext::instance().report('N', token, "stack", errorMessage.c_str());
ExtensionContext::instance().report('N', token, 0, "stack", errorMessage.c_str());
} else {
ExtensionContext::instance().report('R', token, "stack", stack.c_str());
ExtensionContext::instance().reportLong('R', token, "stack", stack);
}
return S_OK;
}