如何在gdb中调用Fortran内置函数?例如,给定一个数组,我想要执行以下操作:
call size(array)
但我得到了当前上下文中没有“size”符号。
需要先在gdb中定义它们,还是直接调用它们的方法?
内部函数是由一些厂商特定的库在编译器中实现的。例如,英特尔编译器通过内联代码实现了大小内部函数,将存储的数组长度放置到给定变量中,因此没有可以调用的函数。
从技术上讲,GDB/IILDB可以评估给定二进制文件中实现的任何函数(您可以在大多数基于Unix的系统上使用nm实用程序找到所有这些函数)。例如,如果程序定义了以下函数:
function get_pi() result(pi)
real pi
pi = 3.1415926
end function
可以通过以下语句在调试器中调用它:
p (float) get_pi()
p sizeof(array)/sizeof(*array)
maxval
或minval
。 另外,您能否详细说明一下关于“核心 C 库”的评论?我怀疑这意味着 libc,<math.h>
在 libc 中,因此按照这个逻辑,我们应该能够从 GDB 调用sin(x)
,但事实并非如此。 - gnikit