Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 如何停止gnatmake内联函数?_Debugging_Inline_Gnu Make_Ada_Gnat - Fatal编程技术网

Debugging 如何停止gnatmake内联函数?

Debugging 如何停止gnatmake内联函数?,debugging,inline,gnu-make,ada,gnat,Debugging,Inline,Gnu Make,Ada,Gnat,我正试图用gdb调试Ada程序。具体而言,我尝试在函数中设置断点,如下所示: function Moment(OC: Object'Class) return Float is begin return OC.X_Coord * OC.Area; end Moment; 我可以设置断点,当到达断点时执行停止。我的问题是,当我使用gdb的源代码视图(带有wh)时,我看不到源代码 我怀疑这是由gnatmake引起的,它内联了所描述的函数,即使我应用了选项-O0-g。为了检查这一点,我尝试添

我正试图用
gdb
调试
Ada
程序。具体而言,我尝试在函数中设置断点,如下所示:

function Moment(OC: Object'Class) return Float is
begin
    return OC.X_Coord * OC.Area;
end Moment;
我可以设置断点,当到达断点时执行停止。我的问题是,当我使用gdb的源代码视图(带有
wh
)时,我看不到源代码

我怀疑这是由
gnatmake
引起的,它内联了所描述的函数,即使我应用了选项
-O0-g
。为了检查这一点,我尝试添加一个
Put_Line
调用来停止gnatmake内联我的函数,它已经起作用了:使用以下函数,我可以停止执行并查看源代码:

function Moment(OC: Object'Class) return Float is
begin
    Put_Line("ASDASD");
    return OC.X_Coord * OC.Area;
end Moment;

如何停止
gnatmake
内联函数?
-cargs-fno内联添加到gnatmake或gprbuild命令行,或将
-fno内联添加到项目文件。

-cargs-fno内联添加到gnatmake或gprbuild命令行,或者
-fno inline
到您的项目文件。

您确定函数实际上是内联的吗?这个网站似乎表明它不是:我怀疑gdb是否假设这个函数是一个表达式函数?一个简单的工作示例会很有用:有一个开关
-fno inline
,用于防止内联。您确定函数实际上是内联的吗?这个网站似乎表明它不是:我怀疑gdb是否假设这个函数是一个表达式函数?一个最简单的工作示例会很有用:有一个开关
-fno inline
,用于防止内联。