Feedback and minor suggestions

13 views
Skip to first unread message

pcpa

unread,
Sep 5, 2011, 5:00:41 PM9/5/11
to Avalanche-users
Hi,

I packaged avalanche for Mandriva during the weekend, and I have
some
suggestions/comments:

Mask file contents should be in decimal, for example, scan a '-' and
if not
specified, call strtoul with base 0.

Instead of adding zeros, leave unchanged some bytes in the input/
seed file.
For example, I am testing a simple language, and specifying a mask
for a single statement, e.g. "b += a;", but it keeps padding with ^@
the
specific range, thus almost guaranteeing a syntax error on most/all
iterations; if instead of doing something like testing "b/*^@^@^@^@"
it
used "b/*= a;" I believe it would have a lot more chances of
triggering bugs,
but just a random suggestion, as I do not understand the algorithm
being
used.

I tried a somewhat equivalent test on gcc, with --trace-
children=yes, but
after a ^C in first iterations, I noticed that at least the valgrind
in
avalanche does not support the PCMPESTRI instruction:
vex amd64->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0x61 0x7 0x0
$ objdump -d /usr/lib64/gcc/x86_64-mandriva-linux-gnu/4.6.1/cc1 | grep
"66 0f 3a 61 07 00"
b362c8: 66 0f 3a 61 07 00 pcmpestri $0x0,(%rdi),%xmm0
b362f4: 66 0f 3a 61 07 00 pcmpestri $0x0,(%rdi),%xmm0
b36324: 66 0f 3a 61 07 00 pcmpestri $0x0,(%rdi),%xmm0
running the same command on the system valgrind (3.6.1) appears to
work...


I just added a simple avalanche.txt, av-seed and av-mask files
to the check subdirectory of one project I have at googlecode:

https://code.google.com/p/exl/source/checkout

that should at least give a better idea of how I am using it.

Thanks,
Paulo

Michael

unread,
Sep 7, 2011, 5:17:17 AM9/7/11
to Avalanche-users
Hello and thanks for your feedback, it's really appreciated!

>   Mask file contents should be in decimal, for example, scan a '-' and
> if not
> specified, call strtoul with base 0.

We used to have both hexadecimal and decimal offsets available for
mask, but decided to leave only hexadecimal numbers.

>   Instead of adding zeros, leave unchanged some bytes in the input/
> seed file.
> For example, I am testing a simple language, and specifying a mask
> for a single statement, e.g. "b += a;", but it keeps padding with ^@
> the
> specific range, thus almost guaranteeing a syntax error on most/all
> iterations; if instead of doing something like testing "b/*^@^@^@^@"
> it
> used "b/*= a;" I believe it would have a lot more chances of
> triggering bugs,
> but just a random suggestion, as I do not understand the algorithm
> being
> used.

Unfortunately, zeroing huge parts of input files is indeed due to the
way avalanche works. Some work is currently done on this issue and
hopefully we'll improve it in the next release.

>   I tried a somewhat equivalent test on gcc, with --trace-
> children=yes, but
> after a ^C in first iterations, I noticed that at least the valgrind
> in
> avalanche does not support the PCMPESTRI instruction:
> vex amd64->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0x61 0x7 0x0
> $ objdump -d /usr/lib64/gcc/x86_64-mandriva-linux-gnu/4.6.1/cc1 | grep
> "66 0f 3a 61 07 00"
>   b362c8:       66 0f 3a 61 07 00       pcmpestri $0x0,(%rdi),%xmm0
>   b362f4:       66 0f 3a 61 07 00       pcmpestri $0x0,(%rdi),%xmm0
>   b36324:       66 0f 3a 61 07 00       pcmpestri $0x0,(%rdi),%xmm0
> running the same command on the system valgrind (3.6.1) appears to
> work...

Thanks, we'll look into this problem.

Michael
Reply all
Reply to author
Forward
0 new messages