我正在尝试使用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
内联功能?
答案 0 :(得分:2)
将-cargs -fno-inline
添加到gnatmake或gprbuild命令行,或-fno-inline
添加到项目文件中。