我怎样才能停止 gnatmake 内联函数?
How can I stop gnatmake inlining functions?
我正在尝试使用 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-inline
添加到您的 gnatmake 或 gprbuild 命令行,或将 -fno-inline
添加到您的项目文件。
我正在尝试使用 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-inline
添加到您的 gnatmake 或 gprbuild 命令行,或将 -fno-inline
添加到您的项目文件。