Wyzwanie polega na napisaniu deterministycznego programu (dowolnego języka / systemu operacyjnego), który nie przyjmuje żadnych argumentów ani innych danych wejściowych i zachowuje się inaczej w debuggerze niż to, jak się zachowuje, gdy nie jest debugowany .
Na przykład program może wyświetlać coś podczas debugowania, ale niczego nie wyświetlać, gdy nie jest debugowany. Lub wypisz coś innego w każdym przypadku. Lub może ulec awarii podczas debugowania, ale nie awarii, gdy nie jest debugowany. Lub odwrotnie.
Ostrzeżenia i wyjaśnienia:
- Różnice czasowe się nie liczą.
- Języki tłumaczone są dozwolone.
- Aby podkreślić determinizm: zachowanie musi być dokładnie powtarzalne zarówno w kontekście debugowania, jak i poza nim.
- Obecność samego debuggera powinna być jedyną różnicą między tymi dwoma przypadkami.
- Poinformowanie debuggera o dodaniu danych wejściowych (ENV stdin lub argv lub cokolwiek innego) oszukuje, debuger powinien uruchomić program „tak jak jest”.
- Zmiana środowiska (np. Działającego na maszynie wirtualnej lub innym systemie operacyjnym lub zmiana ustawień systemu operacyjnego, takich jak limity pamięci) między uruchomieniami debugowania i bez debugowania jest niedozwolona.
Najkrótszy kod wygrywa. Mogę przyznać nagrodę, która ujawnia coś interesującego w działaniu debuggerów.

