用什么方法比较快速的截取指定字符串之后成对出现的entry和ret的内容
assemble_trace.rar
(549 Bytes)
#. function
call8 0x10000000
entry a1,320
{ /"dd1" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
call8 0x20000000
entry a1,320
{ /"dd2" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
rew
{ /"dd3" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
rew.n
{ /"dd4" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
我的测试数据文件可能非常大(超过1G),因此按照普通的方式将整个文件先读取到内存再查找的方式可能非常的费资源,各位达人有什么解决的好建议吗?call8 0x10000000
entry a1,320
{ /"dd1" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
call8 0x20000000
entry a1,320
{ /"dd2" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
rew
{ /"dd3" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
rew.n
{ /"dd4" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
比如指定字符串0x20000000,则需要截取
entry a1,320
{ /"dd2" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
rew
并存放到新文件内,如果是0x10000000,则需要截取(确保所截取的内容entry和ret/ret.n成对)
entry a1,320
{ /"dd1" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
call8 0x20000000
entry a1,320
{ /"dd2" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
rew
{ /"dd3" /ds /#dsd
s32i a6,a1,112
nop \//dd
movi a6,0
}
rew.n
[ 本帖最后由 vfdff 于 2012-7-29 17:41 编辑 ]