如何停止gnatmake内联功能?

时间:2018-05-28 16:10:59

标签: debugging inline gnu-make ada gnat

我正在尝试使用Ada调试gdb程序。具体来说,我试图在如下函数中设置断点:

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内联功能?

1 个答案:

答案 0 :(得分:2)

-cargs -fno-inline添加到gnatmake或gprbuild命令行,或-fno-inline添加到项目文件中。