From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,fea50f781bb229dc X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,UTF8 Path: g2news2.google.com!news4.google.com!feeder.news-service.com!weretis.net!feeder2.news.weretis.net!eternal-september.org!.POSTED!not-for-mail From: Ludovic Brenta Newsgroups: comp.lang.ada Subject: Symbolic tracebacks on Debian (Was: About static libraries and Debian policy) Date: Thu, 20 May 2010 09:20:25 +0200 Organization: A noiseless patient Spider Message-ID: <87sk5navk6.fsf_-_@ludovic-brenta.org> References: <85f51aeb-cac9-4591-921a-a7f50c8ef142@a21g2000yqn.googlegroups.com> <1pup1z7a4f1pq$.of30sejrqe4m.dlg@40tude.net> <87hbmae33k.fsf@ludovic-brenta.org> <85j595F1lqU1@mid.individual.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Thu, 20 May 2010 07:20:26 +0000 (UTC) Injection-Info: mx01.eternal-september.org; posting-host="eFtXNdfZVc7bNiA0mqM/0g"; logging-data="4326"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/OMO9yBt4tTZtooapzoxX6" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:ag61ayZkl40js6rhS78hFTkrbP4= sha1:X845Z6Mm0XTzNiK49cxemulaE1g= Xref: g2news2.google.com comp.lang.ada:11788 Date: 2010-05-20T09:20:25+02:00 List-Id: Björn Persson writes on comp.lang.ada: > Ludovic Brenta wrote: > >> Traceback is always available, either in symbolic or numeric form. To >> get the symbolic form, you need the -dbg package installed. > > Is that libgnat-4.3-dbg that needs to be installed (on Etch)? Yes. More precisely, libgnat-4.1-dbg on Etch, libgnat-4.3-dbg on Lenny and libgnat-4.4-dbg on Squeeze. If the code names are too confusing, version numbers are useful, too :) > I can't get symbolic traceback to work; I get Storage_Error > instead. Below is my test program and how I compile and run it. Do you > have any idea of what's wrong? I investigated and discovered this is a genuine bug in the patched convert_addresses which now expects an additional argument; I never noticed this upstream change: 2007-04-06 Olivier Hainque * adaint.c: (convert_addresses): Adjust prototype and dummy definition to expect an extra file_name argument. * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses, filling the now expected file_name argument with the appropriate argv[0] expansion. (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it. (tracebk): Array of void * instead of char *, corresponding to what convert_addresses expects. (exename): New static global, to hold the executable file name to be used in all convert_addresses invocations. (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type change. (__gnat_gmem_a2l_initialize): Resolve exename. (__gnat_convert_addresses): Use exename as the convert_addresses file_name argument. * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported "convert_addresses", now expecting a filename argument. Import the necessary entities to compute the filename to use and pass it to convert_addresses. (Subversion revision 123544 on the trunk). Consequently I never adjusted convert_addresses.c accordingly. On the one hand, this is quite embarrassing as it means that both gnat-4.3 and gnat-4.4 are broken in this respect. On the other hand, since nobody noticed or reported this problem before you and gnat-4.3 has been in Debian since 2008-01-30, I'm starting to wonder whether symbolic tracebacks are all that useful. Nevertheless, this deserves a bug in the Debian bug tracking system and a fix before the release of Squeeze. Thanks for reporting! -- Ludovic Brenta.