aix 上的 ptrgl_64._ptrgl 函数中的进程失败

发布于 2024-08-03 10:40:39 字数 539 浏览 1 评论 0原文

我们正在尝试将代码从 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"

关于这个问题有什么想法吗?

We are trying to port our code from HPX to AIX but getting core dump while running exe.

It's failing in some unknown function 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"

Any idea about this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜空下最亮的亮点 2024-08-10 10:40:39

这称为指针粘合,用于通过 PowerPC 上的指针调用函数。由于指针可能指向另一个模块/共享对象中的函数,因此需要指针粘合来为该模块设置正确的 RTOC 和环境指针,然后跳转到函数入口点。如果函数指针无效,那么它可能会在指针粘合中崩溃,因为那是指针实际上被取消引用的地方。

请参阅 PowerPC 编译器编写者指南 如果您对完整细节感兴趣。

This is called pointer glue, and is used to call functions through a pointer on PowerPC. Because the pointer could point to a function in another module/shared object, the pointer glue is needed to set up the correct RTOC and environment pointer for that module and then jump to the function entry point. If the function pointer was not valid then it will likely crash in the pointer glue, since that is where the pointer is actually dereferenced.

See section A.3.3 of the PowerPC Compiler Writer's Guide if you are interested in the full details.

怪我闹别瞎闹 2024-08-10 10:40:39

ptrgl_64._ptrgl() 位于 0x900000084da0e48
dfile_Proc(o_record = 0x0000000400000004,
文件类型=“^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)),“DISTfile.c”中的第 621 行
main(i_argc = 4, i_argv = 0x0ffffffffffff34e8),“main_EXEC.c”中的第 66 行

查看 DISTfile.c 的第 621 行。
这条线在做什么?
是通过函数指针调用函数吗?
621行可能会引起什么类型的问题?

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"

Look at line 621 of DISTfile.c.
What is this line doing ?
Is it calling a function through a function pointer ?
What sort of problems might be caused by line 621 ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文