Работа в Windows с GNAT Pro 6.3.1 (я понимаю, что это не идеальная точка данных для вас!) Это работало нормально.
Я заметил, что когда я запрашивал bp в спецификации подпрограммы, GDB фактически устанавливал два bps, один в спецификации и один в первом утверждении: так, учитывая
package body Protected_Object is
protected body PO is
procedure Put (V : Integer) is
begin
Value := V;
end Put;
function Get return Integer is
begin
return Value;
end Get;
end PO;
end Protected_Object;
консоль GDB говорит (для Put
)
gdb) break protected_object.adb:4
Breakpoint 1 at 0x401729: file protected_object.adb, line 6. (2 locations)
и во время выполнения, конечно, есть 2 перерыва:
Breakpoint 1, <protected_object__po__putP> (<_object>=..., v=42) at protected_object.adb:4
(gdb) cont
Breakpoint 1, protected_object.po.put (<_object>=..., v=42) at protected_object.adb:6
Версия: GNU GDB (GDB) 7.0.1 для GNAT Pro 6.3.1 (20100112) [рев: 158983]