Как я могу остановить встроенные функции gnatmake? - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь отладить программу 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 голосов
/ 29 мая 2018

Добавьте -cargs -fno-inline в командную строку gnatmake или gprbuild или -fno-inline в файл проекта.

...