Re: GDB 5.2 vs. Ada (and probably other unknown languages)

Andrew Cagney
2002-04-03T16:47:48Z

> It seems that GDB (starting with 5.1.1 or so) can no longer debug
> programs written in languages unknown to it. With previous GDB
> versions, you could at least set breakpoints, get backtraces, and
> examine most variables, although you had to take name mangling into
> account.
>
> For example, if I try to set a breakpoint in an Ada program, I just
> get the error message "internal error - unimplemented function
> unk_lang_create_fundamental_type called."
>
> Is there a workaround? Even if full Ada support is not available,
> getting backtraces would be helpful in some cases.

Definitly sounds like a new (and unknown) regression :-(
Can you create a bug report to track this
(http://sources.redhat.com/gdb/bugs/). For a workaround, what happens
if you enter ``set language c''?

There is also a source code dropping of ACT's Ada support in:
ftp://sources.redhat.com/pub/gdb/contrib/gnat/ you may find the relevant
change in there.

Andrew

PS: If you're interested in integrating some of the Ada stuff then
you'll probably also need to get copyright (to the fsf) assignment in place.

> Here's a small, stand-alone test program (you have to compile it using
> "gcc -S -g no_debug.adb && gcc no_debug.s", as it doesn't use the Ada
> run-time library).
>
> package No_Debug is
>
> procedure Main;
> pragma Export (C, Main, "main");
>
> end No_Debug;
>
> with System; use System;
>
> package body No_Debug is
>
> procedure Puts (Str : Address);
> pragma Import (C, Puts, "puts");
>
> Message : constant String := "Hello, world!" & ASCII.NUL;
>
> procedure Main is
> begin
> Puts (Message'Address);
> end Main;
>
> end No_Debug;
>
> I've attached the x86 assembler code below, in case you want to
> experiment yourself without having to install Ada.
>
>
>