Table of Contents Table of Contents
Previous Page  84 / 100 Next Page
Information
Show Menu
Previous Page 84 / 100 Next Page
Page Background

SOFTWARE

|

DEBUG

84

C

hiunque sia coinvolto nello sviluppo sof-

tware avrà senza dubbio udito a un certo punto

questa frase: “Non è un bug, ma una caratteri-

stica”: l’origine del problema resta avvolta nel

mistero, ma si tratta certamente di un errore

(bug, appunto) che non era stato rilevato in pre-

cedenza.

Nel dominio hardware esistono strumenti, come

ad esempio gli analizzatori logici, che consentono

agli ingegneri di visualizzare i segnali e qualsiasi

“glitch” (comportamento anomalo) indesiderato.

Nel dominio software la situazione è più com-

plicata, specialmente nel caso di sistemi multi-

thread basati su un sistema operativo real-time

(RTOS) in cui più task concorrenti interagiscono

e condividono risorse limitate, come ad esempio

il tempo di CPU e la memoria.

Si consideri il caso in cui, dovendo eseguire il

campionamento di un sensore ogni 5 ms, occa-

sionalmente si sia riscontrato un ritardo tra i

campioni pari a 6,5 ms e la causa di questo com-

portamento non sia spiegabile in modo semplice.

In un altro caso, alcuni utenti avevano notato un

fenomeno di reset intempestivo dei loro sistemi.

Una possibile causa poteva essere l’interven-

to del Watchdog prima che esso potesse essere

“rinfrescato” dall’applicazione. Il problema era

rappresentato dalla difficoltà di verificare la ve-

ridicità di questa ipotesi.

Sono esempi tipici di come sistemi embedded su

cui gira software complesso possano comportarsi

in un modo non previsto, costringendo i team di

sviluppo a fare speculazioni sulle possibili cau-

se e a procedere spesso in maniera empirica per

cercare di risolvere il problema. Nel caso di mal-

funzionamenti intermittenti o di variazioni delle

prestazioni di un sistema, si tratta di un metodo

“Non è una

caratteristica,

ma un errore”

Un tool come Tracealyzer, in grado

di offrire numerosi punti di vista

sul sistema analizzato, si propone

come un valido complemento agli

strumenti di debug software esistenti

e svolge un ruolo essenziale nello

sviluppo delle odierne applicazioni

embedded

Johan Kraft

Ceo

Percepio AB

EMBEDDED

60 • MAGGIO • 2016

Fig 1(a) – Da questa visualizzazione si evince

che ControlTask potrebbe disabilitare gli inter-

rupts