Debugger: Implement native mixed breakpoints with LLDB

Breakpoints are hit, stack frames are identified as JS or native.
No further data yet.

Change-Id: I84a02422fd36dc7645003114dd8519bedd913c06
Reviewed-by: hjk <hjk@theqtcompany.com>
This commit is contained in:
hjk
2015-02-04 13:29:42 +01:00
parent 955e28f954
commit d4a32fd6b3
4 changed files with 109 additions and 50 deletions

View File

@@ -574,8 +574,8 @@ void LldbEngine::insertBreakpointHelper(DebuggerCommand *cmd, Breakpoint bp) con
cmd->arg("function", bp.functionName().toUtf8());
cmd->arg("oneshot", bp.isOneShot());
cmd->arg("enabled", bp.isEnabled());
cmd->arg("file", bp.fileName().toUtf8());
cmd->arg("line", bp.lineNumber());
cmd->arg("fileName", bp.fileName().toUtf8());
cmd->arg("lineNumber", bp.lineNumber());
cmd->arg("address", bp.address());
cmd->arg("expression", bp.expression());
bp.notifyBreakpointInsertProceeding();
@@ -593,8 +593,8 @@ void LldbEngine::changeBreakpoint(Breakpoint bp)
cmd.arg("function", bp.functionName().toUtf8());
cmd.arg("oneshot", bp.isOneShot());
cmd.arg("enabled", bp.isEnabled());
cmd.arg("file", bp.fileName().toUtf8());
cmd.arg("line", bp.lineNumber());
cmd.arg("fileName", bp.fileName().toUtf8());
cmd.arg("lineNumber", bp.lineNumber());
cmd.arg("address", bp.address());
cmd.arg("expression", bp.expression());
bp.notifyBreakpointChangeProceeding();
@@ -1020,7 +1020,11 @@ void LldbEngine::refreshStack(const GdbMi &stack)
frame.from = item["func"].toUtf8();
frame.line = item["line"].toInt();
frame.address = item["addr"].toAddress();
frame.usable = QFileInfo(frame.file).isReadable();
GdbMi usable = item["usable"];
if (usable.isValid())
frame.usable = usable.data().toInt();
else
frame.usable = QFileInfo(frame.file).isReadable();
frames.append(frame);
}
bool canExpand = stack["hasmore"].toInt();