Commit ec307ac5 authored by George Hotz's avatar George Hotz

instrumenting

parent 177d162f
......@@ -96,7 +96,6 @@ contract MIPS {
// TODO: test ll and sc
function stepNextPC(bytes32 stateHash, uint32 pc, uint64 nextPC) internal view returns (bytes32) {
uint32 insn = m.ReadMemory(stateHash, pc);
//return stateHash;
uint32 opcode = insn >> 26; // 6-bits
uint32 func = insn & 0x3f; // 6-bits
......
......@@ -135,6 +135,9 @@ func opStaticCall(pc *uint64, interpreter *vm.EVMInterpreter, scope *vm.ScopeCon
fmt.Println("HOOKED READ! ", fmt.Sprintf("%x = %x", addr, nret))
}
if addr == 0xc0000080 {
if nret == 0xDEAD0000 {
fmt.Printf("exec is done")
}
if debug >= 1 {
fmt.Printf("%7d %8X %08X : %08X %08X %08X %08X %08X %08X %08X %08X %08X\n",
pcCount, nret, ram[nret],
......@@ -143,9 +146,9 @@ func opStaticCall(pc *uint64, interpreter *vm.EVMInterpreter, scope *vm.ScopeCon
ram[0xc0000018], ram[0xc000001c], ram[0xc0000020], ram[0xc0000024])
}
if ram[nret] == 0xC {
/*syscall := ram[0xc0000008]
fmt.Printf("syscall %d at %x (step %d)\n", syscall, nret, pcCount)
if syscall == 4004 {
syscall := ram[0xc0000008]
os.Stderr.WriteString(fmt.Sprintf("syscall %d at %x (step %d)\n", syscall, nret, pcCount))
/*if syscall == 4004 {
fmt.Printf("WRITE!")
}*/
}
......@@ -286,7 +289,7 @@ func main() {
/*debug = 1
steps := 1000000
runTest(os.Args[1], steps, interpreter, bytecode, uint64(steps)*10000)*/
RunMinigeth(os.Args[1], interpreter, bytecode, 10000000)
RunMinigeth(os.Args[1], interpreter, bytecode, 100000000)
} else {
debug = 2
runTest(os.Args[1], 20, interpreter, bytecode, 1000000)
......
......@@ -68,7 +68,7 @@ def start_instrumenting():
mu.hook_add(UC_HOOK_CODE, hook_code_simple, user_data=mu)
elif tracelevel == 1:
mu.hook_add(UC_HOOK_BLOCK, hook_code_simple, user_data=mu)
if tracelevel >= 3:
if tracelevel >= 4:
instrumenting_all = True
instrumenting = True
......@@ -368,7 +368,7 @@ mu.hook_add(UC_HOOK_MEM_FETCH_UNMAPPED, hook_mem_invalid)
mu.hook_add(UC_HOOK_INTR, hook_interrupt)
#mu.hook_add(UC_HOOK_INSN, hook_interrupt, None, 1, 0, 0x0c000000)
if tracelevel == 4:
if tracelevel == 3:
start_instrumenting()
with open("/tmp/minigeth.bin", "wb") as f:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment