2009-08-26 5 views
0

Nous essayons de porter notre code de HPX à AIX, mais obtenir le vidage du noyau lors de l'exécution exe.processus échoue dans ptrgl_64._ptrgl functionon aix

son échec dans une fonction inconnue ptrgl_64._ptrgl.

> ptrgl_64._ptrgl() at 0x900000084da0e48 
> dfile_Proc(o_record = 
> 0x0000000400000004, fileType = 
> "^O\377\377\377\377\377TH^O\377\377\377\377\377TQ^O\377\377\377\377\377Ta^O\377\377\377\377\377T}", 
> dist_dest = (nil), indicator = '\0', 
> i_acCounters = (nil)), line 621 in 
> "DISTfile.c" main(i_argc = 4, i_argv = 
> 0x0fffffffffff34e8), line 66 in 
> "main_EXEC.c" 

une idée sur ce problème ?? Merci d'avance.

+0

Ce problème était dû à une valeur de pointeur non valide. – Hemant

Répondre

1

Ceci est appelé pointeur de colle, et est utilisé pour appeler des fonctions via un pointeur sur PowerPC. Comme le pointeur peut pointer vers une fonction dans un autre module/objet partagé, la colle du pointeur est nécessaire pour configurer le pointeur RTOC et l'environnement correct pour ce module, puis passer au point d'entrée de la fonction. Si le pointeur de fonction n'était pas valide, il tombera probablement dans la colle du pointeur, puisque c'est là que le pointeur est effectivement déréférencé.

Voir la section A.3.3 du PowerPC Compiler Writer's Guide si vous êtes intéressé par tous les détails.

+0

Merci marque c'était le problème avec le pointeur de fonction seulement. +1 pour l'explication de la colle du pointeur. – Hemant

1

ptrgl_64._ptrgl() à 0x900000084da0e48
dfile_Proc (o_record = 0x0000000400000004,
fileType = "^ O \ 377 \ 377 \ 377 \ 377 \ 377e^O \ 377 \ 377 \ 377 \ 377 \ 377TQ^O \ 377 \ 377 \ 377 \ 377 \ 377Ta^O \ 377 \ 377 \ 377 \ 377 \ 377T} ",
dist_dest = (nul), indicateur = '\ 0', i_acCounters = (nul)), ligne 621 dans "DISTfile.c"
principal (i_argc = 4, i_argv = 0x0fffffffffff34e8), à la ligne 66 en "main_EXEC.c"

regard sur la ligne 621 de DISTfile.c.
Que fait cette ligne?
Appelle-t-il une fonction via un pointeur de fonction?
Quels types de problèmes peuvent être causés par la ligne 621?

+0

oui nous appelons la fonction à travers le tableau de pointeurs de fonction. Mais quel problème pourrait être posé par le pointeur de fonction? Le même code fonctionne parfaitement bien sur HPX? Je ne comprends pas ce qui appelle la fonction "ptrgl_64._ptrgl". Je ne trouve rien sur le google pour cette fonction. – Hemant

+0

merci pour votre réponse son problème avec le pointeur de fonction seulement. – Hemant

Questions connexes