2011-07-06 3 views
0

Je reçois une exception TLB (Load Word ou Instruction Fetch) dans VxWorks. Quand j'analyse plus loin, j'ai compris que l'adresse mémoire qui est référencée ne pointe pas vers un emplacement de mémoire valide. Pour autant que je sache, ce problème peut se produire en raison d'une corruption de la mémoire (écrasement de mémoire possible). Mais, l'analyse du code et l'exécution du même morceau de code dans Windows sous purify ne montre aucune erreur de mémoire. Donc, je me demande si des options du compilateur pourraient causer cette situation? C'est possible?Une exception TLB (Load Word) peut-elle être provoquée par une utilisation incorrecte des options du compilateur?

De même, des pointeurs sur la façon de déboguer ces problèmes?

+0

Un problème d'alignement peut-être? * Par exemple, dans les fenêtres, l'alignement sur 4 octets peut convenir, mais l'alignement sur 8 octets est requis dans vxWorks. * Vérifiez les conversions dans votre code. – pmg

+2

Douteux. Ne pas être en mesure de trouver la déclaration qui corrompt la mémoire ne signifie pas qu'il n'est pas là. Vous ne pouvez pas obtenir des résultats comparables sur un système d'exploitation différent avec un gestionnaire de tas différent. –

Répondre

1

Oui, certaines architectures de processeur et l'exception TLB de jet lorsque le code compilé avec certains indicateurs de compilation accèdent à la mémoire avec certains attributs. par exemple. PowerPC sur la mémoire non mise en cache avec des indicateurs de compilation qui conduisent à un accès aligné aux données non alignées.

Oui, mais sans information supplémentaire "Oui" n'est pas utile pour vous.

Questions connexes