comp.lang.ada
 help / color / mirror / Atom feed
From: Sebastien Morand <seb.morand@gmail.com>
Subject: Re: AWS issue
Date: Sun, 18 May 2008 11:51:51 +0000
Date: 2008-05-18T11:51:51+00:00	[thread overview]
Message-ID: <48301857.5090609@gmail.com> (raw)
In-Reply-To: 

Debugger for ada is not installed, so I can run the debugger, but the only 
answer I get is exit code 01.

About addr2line, here is what I got:
$ addr2line -e hello_world 0x28188ac9 0x2818a535 0x2819196a 0x28183cac 
0x2819bd94 0x2819e324 0x804d184 0x804d022 0x804c987??:0
??:0
??:0
??:0
??:0
??:0
/mnt/programs/opt/src/AWS-gpl-2.3.0/demos/hello_world.adb:43
/mnt/programs/opt/src/AWS-gpl-2.3.0/.build/release/demos/obj/b~hello_world.adb:447
??:0

The problem is 
/mnt/programs/opt/src/AWS-gpl-2.3.0/.build/release/demos/obj/b~hello_world.adb 
does not exist :-)

So finally I tried the third solutions: Adding
      exception
        when e : others =>
            Ada.Text_Io.Put_Line
                 (GNAT.Traceback.Symbolic.
                    Symbolic_Traceback(E));
at the end of the program.
So I got the two errors:
/usr/bin/ld: Unable to find -laddr2line
/usr/bin/ld: Unable to find -lbfd

So I use addr2line/*.o and bfd/*.o in the FreeBSD source tree to create the lib 
and then...
convert_addresses was missing. I found out in gcc source tree the following:
in ada/adaint.c:
/* Dummy function to satisfy g-trasym.o. See the preprocessor conditional
    just above for a list of native platforms that provide a non-dummy
    version of this procedure in libaddr2line.a.  */
void
convert_addresses (const char *file_name ATTRIBUTE_UNUSED,
		   void *addrs ATTRIBUTE_UNUSED,
		   int n_addr ATTRIBUTE_UNUSED,
		   void *buf ATTRIBUTE_UNUSED,
		   int *len ATTRIBUTE_UNUSED)
{
   *len = 0;
}

So I compile a single file with this function and link with all that stuff.
And compile was fine but no error anymore. I think the empty code of the 
function convert_addresses if the point. If you have a code more appropriate, I 
think I hope I'll be able to get GNAT.Traceback.Symbolic.Symbolic_Traceback(E) 
working.

> Hi.
> First:
> At a glance it seems like you are missing -gnat05 in the compile command 
> so you get and Ada95 compiler instead of Ada (Ada05) compiler.
> 
> And the second just a hint:
>  3 options to start debugging:
>   * Use the debugger.
>   * Do an addr2line -e httpd 0x28188ac9 0x2818a535 0x2819196a ..
>   * Last in your main program add a handler that proints
>     exception
>       when e : others =>
>           Ada.Text_Io.Put_Line
>                (GNAT.Traceback.Symbolic.
>                   Symbolic_Traceback(E));
> 
> Sebastien Morand wrote:
>> Hi,
>>
>> I've got two problems on AWS, hope there is some aws 2.3 users here. 
>> I'm under FreeBSD 7.0-STABLE running gnat and gcc 4.3
>>
>> First, there are lines that doesn't compile, I think it's more an ada 
>> issue about some think I miss that an AWS issue:
>>
>> $ gnatmake --GCC=gcc-ada -P *gpr && ./httpd
>> gcc-ada -c -I- -gnatA 
>> /mnt/programs/home/sebastien/workspaces/httpd/src/httpd/httpd.adb
>> httpd.adb:65:06: no selector "Initialize" for private type "Handler" 
>> defined at aws-services-dispatchers-uri.ads:41
>> httpd.adb:66:06: no selector "Initialize" for private type "Handler" 
>> defined at aws-services-dispatchers-virtual_host.ads:39
>> gnatmake: 
>> "/mnt/programs/home/sebastien/workspaces/httpd/src/httpd/httpd.adb" 
>> compilation error
>>
>> The lines are the following:
>>     60      H: AWS.Services.Dispatchers.URI.Handler;
>>     61      V: AWS.Services.Dispatchers.Virtual_Host.Handler;
>>     62      C: AWS.Config.Object := AWS.Config.Default_Config;
>>     63
>>     64  begin
>>     65      H.Initialize;
>>     66      V.Initialize;
>>
>> What I don't understand is that AWS.Services.Dispatchers.URI.Handler; 
>> is a new AWS.Dispatchers.Handler and Initialize is defined for 
>> AWS.Dispatchers.Handler type, so it should be ok.
>>
>>
>> Second I'm not able to run AWS tests, I got the following for the 
>> hello_world demo :
>> $ ./hello_world
>> Call me on port 8080, I will stop in 60 seconds...
>>
>> Execution terminated by unhandled exception
>> Exception name: AWS.NET.SOCKET_ERROR
>> Message: Connect : [47] Address family not supported by protocol family
>> Call stack traceback locations:
>> 0x28188ac9 0x2818a535 0x2819196a 0x28183cac 0x2819bd94 0x2819e324 
>> 0x804d184 0x804d022 0x804c987
>>
>> So, Could it be some mistakes in my gnat installation about socket?
>>
>> Sebastien



  parent reply	other threads:[~2008-05-18 11:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-17 21:00 AWS issue Sebastien Morand
2008-05-17 23:15 ` Samuel Tardieu
2008-05-18 10:13 ` Per Sandberg
2008-05-18 10:10   ` Ludovic Brenta
2008-05-18 11:51   ` Sebastien Morand [this message]
2008-05-18 20:46     ` Simon Wright
2008-05-18 20:59     ` Gautier
2008-05-18 17:16 ` Sebastien Morand
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox