Paulo Marques schrieb:
Georg-Johann Lay wrote:

Paulo Marques schrieb:

[...]
Or maybe you are compiling the test suite for a cpu model that has RAM
at those adresses? The last time I ran the test suite I was compiling
for an atmega128 IIRC.

A program that goes wild does such weird things, even if there is *no*
RAM there :-)

For some variations of the test case avrtest detects a stack overflow,
but for the exe you find attached avrtest does not see a stack overflow.


Ah! If this only happens for really bad bugs, we could either place a
timeout there or use a command line argument to disable stdin altogether
(maybe even exiting with ABORT in case the code tries to read stdin).

A command line option to deactivate stdin would be good. avr is not on a hosted environmant, there is nowhere input could come from.

ABORT is a good idea, with an appropriate "reason".

Besides that, avrtest could abort on:
- reading from any reserved location
- writing to any reserved location (except the virtual ports EXIT_PORT, STDOUT_PORT, ABORT_PORT.

this includes read/writes to GPRs via their memory address.

To check for reserved access code like this should perform well

int a = ((int) address) -32;

if (a < 0
    || (reserved_mask & (1 << a)))
  abort();

or just initialize a small lookup table for reads/writes.

The writer will already have handled the virtual ports, so the LUT for reals/writes may be same.

Johann


_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to