-- Demonstrates printing a traceback when an exception occurs -- Compile with gnatmake -f -g demogdb2 -bargs -E -- -f forces compilation (in case executable is up to date) -- -g generates debug info -- -bargs introduces arguments to the linker -- -E include exception traceback info with gnat.traceback.symbolic; use gnat.traceback.symbolic; with ada.exceptions; use ada.exceptions; with ada.text_io; use ada.text_io; with ada.integer_text_io; use ada.integer_text_io; procedure demogdb2 is procedure demo(result: out integer) is x: integer := 0; begin get(x); result := 3 / x; end demo; y: integer; begin demo(y); exception when e: others => put_line("raised exception " & exception_name(e)); put_line("traceback: "); put_line( symbolic_traceback(e)); end demogdb2;