сбой процесса в функции ptrgl_64._ptrgl в aix - PullRequest
0 голосов
/ 26 августа 2009

Мы пытаемся перенести наш код из HPX в AIX, но получаем дамп ядра при запуске exe.

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

есть идеи по этому вопросу? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 27 августа 2009

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

См. Раздел A.3.3 Руководства по написанию компилятора PowerPC , если вас интересует полная информация.

1 голос
/ 27 августа 2009

ptrgl_64._ptrgl () в 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), индикатор = '\ 0', i_acCounters = (nil)), строка 621 в "DISTfile.c"
main (i_argc = 4, i_argv = 0x0fffffffffff34e8), строка 66 в "main_EXEC.c"

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...