StackAnalyzer : analyse statique de la pile mémoire

StackAnalyzer détermine automatiquement l’utilisation au pire cas de la pile des tâches de votre application. Le débordement de pile (« stack overflow ») appartient désormais au passé.

Copie d’écran de StackAnalyzer
Copie d’écran de StackAnalyzer

La problématique

Le logiciel de contrôle embarqué (par ex. dans l’industrie automobile) a tendance à être grand et complexe. Le logiciel utilisé dans une unité de contrôle électronique unique doit normalement fournir plusieurs types de fonctionnalité. En général, il est développé par plusieurs personnes, plusieurs groupes ou bien encore plusieurs fournisseurs différents. Les outils de génération de code sont beaucoup utilisés. Généralement, ils cachent aux développeurs certains détails concernant l’implémentation, et rendent ainsi la compréhension du comportement du code encore plus difficile.

Beaucoup de logiciels de contrôle embarqués sont employés dans des systèmes à sûreté critique. Une défaillance d’une application à sûreté critique peut provoquer des dégâts graves ou même une perte de vie. Une défaillance de logiciel peut entraîner des réparations chères pour des applications non-critiques. L’une des causes probables d’échec de dimension catastrophique est le débordement de pile qui en général conduit à des erreurs durant l’exploitation, difficiles à déceler. Le problème qui se pose est que l’emplacement mémoire pour la pile d’exécution doit normalement être réservé par le programmeur.

Une sousestimation de l’utilisation maximale de la pile conduit à un débordement de pile, tandis qu’une surestimation signifie une perte de ressources mémoire.

La mesure de l’utilisation maximale de la pile à l’aide d’un débogueur n’est pas une solution dans la mesure où l’on ne peut obtenir de résultat que pour une seul programme fonctionnant avec un input fixe. De même, des mesures répétées faites avec différents inputs ne peuvent pas garantir le respect de l’utilisation maximale de la pile. Quelques compilateurs, mais pas tous, donnent des informations sur l’utilisation de la pile. Mais ceci demande une disponibilité du code source, et l’information devient non valide lorsque le code généré est optimisé manuellement ou par un outil automatique.

La solution

L’outil StackAnalyzer d’AbsInt apporte une solution à ce problème : en analysant la valeur du pointeur de pile durant l’analyse de valeur, l’outil peut déterminer la façon dont la pile d’exécution augmente et diminue le long des différents chemins de flot de contrôle des tâches de l’application. Ceci permet de calculer de façon automatique les bornes supérieures précises sur l’utilisation de la pile mémoire pour chaque tâche de l’application.

Références clients :

Processeurs supportés

StackAnalyzer est disponible pour un nombre croissant de processeurs cibles et compilateurs.

Couplage facile

StackAnalyzer est intégré avec bien des outils de développement sophistiqués :

dSPACE logo
Symtavision logo
Jenkins logo

StackAnalyzer peut être combiné avec d’autres outils AbsInt (par exemple, aiT pour l’analyse statique du temps d’exécution au pire cas) dans une seule interface utilisateur intuitive.

Qualification de l’outil

Nous offrons des kits de qualification speciales pour StackAnalyzer, qui ont déjà été utilisés à succès par de nombreuses entreprises dans leur processus de certification DO-178B ou ISO 26262.

StackAnalyzer est aussi un composant intégral de l’environnement de développement SCADE Suite qui est qualifié conformément à DO-178B level A, à IEC 61508 SIL 3, et à EN-50128 SIL4.

Evaluation gratuite

Commandez votre version d’évaluation gratuite aujourd’hui ou bien contactez nos distributeurs officiels :


Informations complémentaires en anglais

Pour de plus amples informations, veuillez voir la page anglaise.