Пример #1
0
QString gprComment(const Register& reg)
{
	QString regString;
	int stringLength;
	QString comment;
	if(edb::v1::get_ascii_string_at_address(reg.valueAsAddress(), regString, edb::v1::config().min_string_length, 256, stringLength))
		comment=QString("ASCII \"%1\"").arg(regString);
	else if(edb::v1::get_utf16_string_at_address(reg.valueAsAddress(), regString, edb::v1::config().min_string_length, 256, stringLength))
		comment=QString("UTF16 \"%1\"").arg(regString);
	return comment;
}
Пример #2
0
void updateSegRegs(RegisterViewModel& model, const State& state) {
	static const QString sregs[]={"es","cs","ss","ds","fs","gs"};
    for(std::size_t i=0;i<sizeof(sregs)/sizeof(sregs[0]);++i) {
        QString sreg(sregs[i]);
        const auto sregValue=state[sreg].value<edb::seg_reg_t>();
		const Register base=state[sregs[i]+"_base"];
		QString comment;
		if(edb::v1::debuggeeIs32Bit() || i>=FS) {
			if(base)
				comment=QString("(%1)").arg(base.valueAsAddress().toHexString());
			else if(edb::v1::debuggeeIs32Bit() && sregValue==0)
				comment="NULL";
			else
				comment="(?)";
		}
		model.updateSegReg(i,sregValue,comment);
	}
}