use sleeps

This commit is contained in:
Ned Williamson 2015-03-11 01:27:00 -04:00
parent e0d14859d3
commit ef226335b2
1 changed files with 8 additions and 0 deletions

View File

@ -1,6 +1,7 @@
import Queue import Queue
from model import Function, Block, DESTTYPE from model import Function, Block, DESTTYPE
import byteweight import byteweight
import time
def analyze_functions(static): def analyze_functions(static):
make_function_at(static, static['entry']) make_function_at(static, static['entry'])
@ -18,6 +19,7 @@ def make_function_at(static, address, recurse = True):
if static[address]['function'] != None: if static[address]['function'] != None:
# already function # already function
return return
start = time.time()
block_starts = set([address]) block_starts = set([address])
function_starts = set() function_starts = set()
this_function = Function(address) this_function = Function(address)
@ -61,6 +63,9 @@ def make_function_at(static, address, recurse = True):
if d not in done: if d not in done:
pending.put(d) pending.put(d)
done.add(d) done.add(d)
if (time.time() - start) > 0.01:
time.sleep(0.01)
start = time.time()
#print map(hex, done) #print map(hex, done)
@ -77,6 +82,9 @@ def make_function_at(static, address, recurse = True):
i = static[address]['instruction'] i = static[address]['instruction']
this_block.add(address) this_block.add(address)
static[address]['block'] = this_block static[address]['block'] = this_block
if (time.time() - start) > 0.01:
time.sleep(0.01)
start = time.time()
static['blocks'].add(this_block) static['blocks'].add(this_block)
# find more functions # find more functions