Alcuni sviluppatori lavorano sul rafforzamento del codice.
(protezione dagli errori, è possibile creare con una protezione dello stack, ad esempio) .
Tuttavia, se stai tentando di ripetere uno strano rapporto di qualcun altro o di trovare possibili problemi con il codice, potrebbe essere utile il contrario.
Esistono metodi ben noti per aumentare la possibilità che un errore nel codice porti a un arresto anomalo?
Gli esempi potrebbero includere ...
- Comprime le strutture in modo che l'accesso fuori campo accidentale non acceda ai byte di riempimento.
- Inizializza stack & memoria heap a bit casuali.
- Riorganizza l'eseguibile nel layout di memoria per esporre gli errori.
(Per qualsiasi motivo o 'buona fortuna', alcuni bug avranno un impatto solo su configurazioni specifiche) . - Modifica la pianificazione dei thread per esporre bug di threading.
Quindi la domanda è:
Quali sono i metodi esistenti per costruire software, che aiutano a esporre errori nelle applicazioni C / C ++?
Nota, sono a conoscenza di valgrind, address-sanitizer & razionale-purificare.