2009-08-26 3 views
0

Мы пытаемся перенести наш код с HPX на AIX, но получаем дамп ядра во время работы exe.процесс не работает в ptrgl_64._ptrgl functionon aix

его отказ от неизвестной функции 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" 

любое представление об этой проблеме ?? Спасибо заранее.

+0

Эта проблема вызвана неправильным значением указателя. – Hemant

ответ

1

Это называется указательным клеем и используется для вызова функций с помощью указателя на PowerPC. Поскольку указатель может указывать на функцию в другом модуле/совместно используемом объекте, клей-указатель необходим для настройки правильного RTOC и указателя окружения для этого модуля, а затем перехода к точке входа функции. Если указатель функции недействителен, он, скорее всего, сбой в клеймере указателя, так как именно здесь указатель фактически разыменован.

Если вы заинтересованы в полной информации, обратитесь к разделу A.3.3 из PowerPC Compiler Writer's Guide.

+0

Спасибо, что это была проблема только с указателем функции. +1 для объяснения указателя клея. – Hemant

1

ptrgl_64._ptrgl() в 0x900000084da0e48
dfile_Proc (o_record = 0x0000000400000004,
FileType = "^ О \ 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)), строка 621 в "DISTfile.c"
основная (i_argc = 4, i_argv = 0x0fffffffffff34e8), строка 66 в "main_EXEC.c"

Посмотрите на линии 621 DISTfile.c.
Что это за линия?
Это вызов функции через указатель на функцию?
Какие проблемы могут быть вызваны линией 621?

+0

Да, мы вызываем функцию через массив указателей функций. Но какая проблема может быть вызвана указателем на функцию? такой же код работает отлично на HPX? Я не понимаю, что вызывает функцию «ptrgl_64._ptrgl». Я не могу найти что-нибудь в google для этой функции. – Hemant

+0

спасибо за ваш ответ, это была проблема только с указателем функции. – Hemant