[panda-users] Programmatic replay?

Igor R boost.lists at gmail.com
Mon Mar 2 13:31:08 EST 2015


> 1. Observation only. Changing program state would cause execution to
> diverge from the original recording, and because of the interface we
> use for recording, it is not possible to "go live" from that point.
> You can find more details on why this is so in our tech report [1],
> specifically section 2.A
Ok, I see... So, it won't do what I want "out of the box".
Still, I'd like understand how far are the things I need from the current
PANDA functionality - to try and estimate the required development.
I'll elaborate some more on what I actually need, and I'd appriciate any
pointer!
Consider the following heavily-branching pseudo-code:
a = getc();
if (a == some_char1)
{
do_some_heavy_processing1();
b = getc();
if (b == some_char2)
{
do_some_heavy_processing2();
// etc...
}
else
{
do_some_heavy_processing3();
// etc...
}
}
else
{
do_some_heavy_processing4();
c = getc();
if (c == some_char3)
{
do_some_heavy_processing5(); // WANT TO GET HERE
d = getc();
// etc...
}
else
{
do_some_heavy_processing6();
e = getc();
// etc...
}
}
Lets assume that there's a specific point in the program I'd like to reach.
To do this I need to feed the program with various inputs. Whenever I
realise I'm going wrong way, I'd like to jump back, to the recent input,
and alter it - because it would take too much time to restart the program
every time from the beginning.
In other words, I'd like to make a trivial fuzzer that is able to roll back
to some previous state, change the input, and go live from this point.
I understand that such a mechanism doesn't exist in PANDA, but would it be
feasible to use some of its codebase to build such a tool upon it?

Thanks for your assistance!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mit.edu/mailman/private/panda-users/attachments/20150302/19060f00/attachment.htm


More information about the panda-users mailing list