Edit inactive breakpoint
This commit is contained in:
parent
c2f999c6ea
commit
58825d4522
|
@ -585,7 +585,7 @@ void BreakpointsView::removeBreakpointSlot()
|
||||||
if(bp.active)
|
if(bp.active)
|
||||||
Breakpoints::removeBP(bp);
|
Breakpoints::removeBP(bp);
|
||||||
else
|
else
|
||||||
DbgCmdExec(QString("bc \"%1\":$%2").arg(bp.mod).arg(ToHexString(bp.addr)));
|
DbgCmdExec(QString().sprintf("bc \"%s\":$%X", bp.mod, bp.addr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -601,7 +601,7 @@ void BreakpointsView::editBreakpointSlot()
|
||||||
{
|
{
|
||||||
if(!isValidBp())
|
if(!isValidBp())
|
||||||
return;
|
return;
|
||||||
auto & bp = selectedBp();
|
const BRIDGEBP & bp = selectedBp();
|
||||||
if(bp.type == bp_dll)
|
if(bp.type == bp_dll)
|
||||||
{
|
{
|
||||||
Breakpoints::editBP(bp_dll, bp.mod, this);
|
Breakpoints::editBP(bp_dll, bp.mod, this);
|
||||||
|
@ -609,7 +609,60 @@ void BreakpointsView::editBreakpointSlot()
|
||||||
else if(bp.active || bp.type == bp_exception)
|
else if(bp.active || bp.type == bp_exception)
|
||||||
{
|
{
|
||||||
Breakpoints::editBP(bp.type, ToPtrString(bp.addr), this);
|
Breakpoints::editBP(bp.type, ToPtrString(bp.addr), this);
|
||||||
} //TODO: edit inactive breakpoints
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QString addrText = QString().sprintf("\"%s\":$%X", bp.mod, bp.addr);
|
||||||
|
EditBreakpointDialog dialog(this, bp);
|
||||||
|
if(dialog.exec() != QDialog::Accepted)
|
||||||
|
return;
|
||||||
|
auto exec = [](const QString & command)
|
||||||
|
{
|
||||||
|
DbgCmdExecDirect(command.toUtf8().constData());
|
||||||
|
};
|
||||||
|
const BRIDGEBP & newBp = dialog.getBp();
|
||||||
|
switch(bp.type)
|
||||||
|
{
|
||||||
|
case bp_normal:
|
||||||
|
exec(QString("SetBreakpointName %1, \"%2\"").arg(addrText).arg(newBp.name));
|
||||||
|
exec(QString("SetBreakpointCondition %1, \"%2\"").arg(addrText).arg(newBp.breakCondition));
|
||||||
|
exec(QString("SetBreakpointLog %1, \"%2\"").arg(addrText).arg(newBp.logText));
|
||||||
|
exec(QString("SetBreakpointLogCondition %1, \"%2\"").arg(addrText).arg(newBp.logCondition));
|
||||||
|
exec(QString("SetBreakpointCommand %1, \"%2\"").arg(addrText).arg(newBp.commandText));
|
||||||
|
exec(QString("SetBreakpointCommandCondition %1, \"%2\"").arg(addrText).arg(newBp.commandCondition));
|
||||||
|
exec(QString("ResetBreakpointHitCount %1, %2").arg(addrText).arg(ToPtrString(newBp.hitCount)));
|
||||||
|
exec(QString("SetBreakpointFastResume %1, %2").arg(addrText).arg(newBp.fastResume));
|
||||||
|
exec(QString("SetBreakpointSilent %1, %2").arg(addrText).arg(newBp.silent));
|
||||||
|
exec(QString("SetBreakpointSingleshoot %1, %2").arg(addrText).arg(newBp.singleshoot));
|
||||||
|
break;
|
||||||
|
case bp_hardware:
|
||||||
|
exec(QString("SetHardwareBreakpointName %1, \"%2\"").arg(addrText).arg(newBp.name));
|
||||||
|
exec(QString("SetHardwareBreakpointCondition %1, \"%2\"").arg(addrText).arg(newBp.breakCondition));
|
||||||
|
exec(QString("SetHardwareBreakpointLog %1, \"%2\"").arg(addrText).arg(newBp.logText));
|
||||||
|
exec(QString("SetHardwareBreakpointLogCondition %1, \"%2\"").arg(addrText).arg(newBp.logCondition));
|
||||||
|
exec(QString("SetHardwareBreakpointCommand %1, \"%2\"").arg(addrText).arg(newBp.commandText));
|
||||||
|
exec(QString("SetHardwareBreakpointCommandCondition %1, \"%2\"").arg(addrText).arg(newBp.commandCondition));
|
||||||
|
exec(QString("ResetHardwareBreakpointHitCount %1, %2").arg(addrText).arg(ToPtrString(newBp.hitCount)));
|
||||||
|
exec(QString("SetHardwareBreakpointFastResume %1, %2").arg(addrText).arg(newBp.fastResume));
|
||||||
|
exec(QString("SetHardwareBreakpointSilent %1, %2").arg(addrText).arg(newBp.silent));
|
||||||
|
exec(QString("SetHardwareBreakpointSingleshoot %1, %2").arg(addrText).arg(newBp.singleshoot));
|
||||||
|
break;
|
||||||
|
case bp_memory:
|
||||||
|
exec(QString("SetMemoryBreakpointName %1, \"\"%2\"\"").arg(addrText).arg(newBp.name));
|
||||||
|
exec(QString("SetMemoryBreakpointCondition %1, \"%2\"").arg(addrText).arg(newBp.breakCondition));
|
||||||
|
exec(QString("SetMemoryBreakpointLog %1, \"%2\"").arg(addrText).arg(newBp.logText));
|
||||||
|
exec(QString("SetMemoryBreakpointLogCondition %1, \"%2\"").arg(addrText).arg(newBp.logCondition));
|
||||||
|
exec(QString("SetMemoryBreakpointCommand %1, \"%2\"").arg(addrText).arg(newBp.commandText));
|
||||||
|
exec(QString("SetMemoryBreakpointCommandCondition %1, \"%2\"").arg(addrText).arg(newBp.commandCondition));
|
||||||
|
exec(QString("ResetMemoryBreakpointHitCount %1, %2").arg(addrText).arg(ToPtrString(newBp.hitCount)));
|
||||||
|
exec(QString("SetMemoryBreakpointFastResume %1, %2").arg(addrText).arg(newBp.fastResume));
|
||||||
|
exec(QString("SetMemoryBreakpointSilent %1, %2").arg(addrText).arg(newBp.silent));
|
||||||
|
exec(QString("SetMemoryBreakpointSingleshoot %1, %2").arg(addrText).arg(newBp.singleshoot));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BreakpointsView::resetHitCountBreakpointSlot()
|
void BreakpointsView::resetHitCountBreakpointSlot()
|
||||||
|
|
Loading…
Reference in New Issue