comp.lang.ada
 help / color / mirror / Atom feed
* Size optimization for objects
@ 2013-06-28 19:49 Rego, P.
  2013-06-29  7:10 ` Georg Bauhaus
                   ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: Rego, P. @ 2013-06-28 19:49 UTC (permalink / raw)


I am trying to reduce the size of an application. Is there a tool (in GNAT) which generates a report for each package elements, of how much they contribute to the total size of the obj (and the final executable)?

Thanks.
Rego.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-06-28 19:49 Size optimization for objects Rego, P.
@ 2013-06-29  7:10 ` Georg Bauhaus
  2013-07-01 13:56   ` Rego, P.
  2013-06-29  9:48 ` Jack Daniels
  2013-06-30 11:34 ` rrr.eee.27
  2 siblings, 1 reply; 25+ messages in thread
From: Georg Bauhaus @ 2013-06-29  7:10 UTC (permalink / raw)


On 28.06.13 21:49, Rego, P. wrote:
> I am trying to reduce the size of an application. Is there a tool (in GNAT) which generates a report for each package elements, of how much they contribute to the total size of the obj (and the final executable)?

-gnatR might be a starting point.




^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-06-28 19:49 Size optimization for objects Rego, P.
  2013-06-29  7:10 ` Georg Bauhaus
@ 2013-06-29  9:48 ` Jack Daniels
  2013-07-01 13:58   ` Rego, P.
  2013-06-30 11:34 ` rrr.eee.27
  2 siblings, 1 reply; 25+ messages in thread
From: Jack Daniels @ 2013-06-29  9:48 UTC (permalink / raw)


Le vendredi 28 juin 2013 21:49:20 UTC+2, Rego, P. a écrit :
> I am trying to reduce the size of an application. Is there a tool (in GNAT) which generates a report for each package elements, of how much they contribute to the total size of the obj (and the final executable)?

2 hints :
1/ gnatelim
2/ use strip to remove symbol tables :I was able to reduce the size of an exe from 3.5 Mb to 1.6 Mb
on Linux strip is standard.
on Windows strip is part of cygwin.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-06-28 19:49 Size optimization for objects Rego, P.
  2013-06-29  7:10 ` Georg Bauhaus
  2013-06-29  9:48 ` Jack Daniels
@ 2013-06-30 11:34 ` rrr.eee.27
  2013-07-01 14:35   ` Rego, P.
  2 siblings, 1 reply; 25+ messages in thread
From: rrr.eee.27 @ 2013-06-30 11:34 UTC (permalink / raw)


On Friday, June 28, 2013 9:49:20 PM UTC+2, Rego, P. wrote:
> I am trying to reduce the size of an application. Is there a tool (in GNAT) which generates a report for each package elements, of how much they contribute to the total size of the obj (and the final executable)?
> 

strip(1) reduces the size of an application in the file system by removing the debug info.

If you want to see the size of various elements in a binary use nm(1). nm --print-size --size-sort might give you some hints where to start remving elements.

If you compile with -fdata-sections -ffunction-sections and link with --gc-sections the linker automatically removes all unused code and all unused data. That is typically easier than gnatelim.

HTH
   Rolf

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-06-29  7:10 ` Georg Bauhaus
@ 2013-07-01 13:56   ` Rego, P.
  2013-07-01 16:49     ` G.B.
  0 siblings, 1 reply; 25+ messages in thread
From: Rego, P. @ 2013-07-01 13:56 UTC (permalink / raw)


On Saturday, June 29, 2013 4:10:56 AM UTC-3, Georg Bauhaus wrote:
> On 28.06.13 21:49, Rego, P. wrote:
> 
> > I am trying to reduce the size of an application. Is there a tool (in GNAT) which generates a report for each package elements, of how much they contribute to the total size of the obj (and the final executable)?
> 
> 
> 
> -gnatR might be a starting point.

I should build the application with "-gnatR" in the compiler section of GPS project, right? What does this generate? I did not realize the difference (maybe I did not know where to find the info). Thanks.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-06-29  9:48 ` Jack Daniels
@ 2013-07-01 13:58   ` Rego, P.
  0 siblings, 0 replies; 25+ messages in thread
From: Rego, P. @ 2013-07-01 13:58 UTC (permalink / raw)


On Saturday, June 29, 2013 6:48:25 AM UTC-3, Jack Daniels wrote:
> Le vendredi 28 juin 2013 21:49:20 UTC+2, Rego, P. a écrit :
> 
> > I am trying to reduce the size of an application. Is there a tool (in GNAT) which generates a report for each package elements, of how much they contribute to the total size of the obj (and the final executable)?
> 
> 
> 
> 2 hints :
> 
> 1/ gnatelim
> 
> 2/ use strip to remove symbol tables :I was able to reduce the size of an exe from 3.5 Mb to 1.6 Mb
> 
> on Linux strip is standard.
> 
> on Windows strip is part of cygwin.

Thanks Jack.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-06-30 11:34 ` rrr.eee.27
@ 2013-07-01 14:35   ` Rego, P.
  2013-07-01 15:28     ` Niklas Holsti
  0 siblings, 1 reply; 25+ messages in thread
From: Rego, P. @ 2013-07-01 14:35 UTC (permalink / raw)


Hello Rolf,

On Sunday, June 30, 2013 8:34:30 AM UTC-3, rrr.e...@gmail.com wrote:
> strip(1) reduces the size of an application in the file system by removing the debug info.
So it's not the best option, because I am trying to reduce the application size in order to be able to debug the app. A new added code caused the app to grow beyond I expected, so now I am not able to debug it anymore. I think the best is to analyse using nm. But also probably there is more code (than the newest added one) I should optimize.
 
> If you want to see the size of various elements in a binary use nm(1). nm --print-size --size-sort might give you some hints where to start remving elements.
I am still having some difficult in understand the information generated by nm. It generates something like
00c038d6 ff42d001 D ___gl_locking_policy

The first column I think it's the "symbol value", the second column I guess it's the size of the symbol. The other columns are ok, since the man nm explains quite well. What does "symbol value" mean? 

Also, the second column represents the symbol size (in bytes I presume). If I sum all the symbol sizes, should the total sum give the size of the executable file? I tried this, but the total sum is far bigger than the real size of the application binary.

> If you compile with -fdata-sections -ffunction-sections and link with --gc-sections the linker automatically removes all unused code and all unused data. That is typically easier than gnatelim.
I also will try this. 

Thanks,
Rego.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-01 14:35   ` Rego, P.
@ 2013-07-01 15:28     ` Niklas Holsti
  2013-07-01 16:35       ` Rego, P.
  0 siblings, 1 reply; 25+ messages in thread
From: Niklas Holsti @ 2013-07-01 15:28 UTC (permalink / raw)


On 13-07-01 17:35 , Rego, P. wrote:

> I am still having some difficult in understand the information
> generated by nm. It generates something like
> 00c038d6 ff42d001 D ___gl_locking_policy
> 
> The first column I think it's the "symbol value", the second column I
> guess it's the size of the symbol. The other columns are ok, since
> the man nm explains quite well. What does "symbol value" mean?

In the linker world, "symbol value" usually means the address of the
object or subprogram identified by the symbol. However, sometimes
symbols can also stand for other kinds of values (offsets or sizes), but
that is less common.

My "nm", on my 64-bit system, generates the value/address as a single
column with 16-digit hex values, followed by "D" and other codes in the
second column. Perhaps your "nm" separates the 16 hex digits into two
8-digit groups, for easier reading? Are you using 32-bit or 64-bit binaries?

> Also, the second column represents the symbol size (in bytes I
> presume).

From your example, I doubt that: ff42d001 does not seem a likely size
for anything.

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
      .      @       .

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-01 15:28     ` Niklas Holsti
@ 2013-07-01 16:35       ` Rego, P.
  2013-07-01 18:21         ` Niklas Holsti
  0 siblings, 1 reply; 25+ messages in thread
From: Rego, P. @ 2013-07-01 16:35 UTC (permalink / raw)


On Monday, July 1, 2013 12:28:24 PM UTC-3, Niklas Holsti wrote:
> In the linker world, "symbol value" usually means the address of the
> object or subprogram identified by the symbol. However, sometimes
> symbols can also stand for other kinds of values (offsets or sizes), but
> that is less common.
Ok, now I understand. Thanks.

> My "nm", on my 64-bit system, generates the value/address as a single
> column with 16-digit hex values, followed by "D" and other codes in the
> second column. Perhaps your "nm" separates the 16 hex digits into two
> 8-digit groups, for easier reading? Are you using 32-bit or 64-bit binaries?
I am using 32-bit binaries. Actually, it generates 2 columns of 8 hex digits only when I put the options --print-sizes --size-sort. Otherwise, it gives me something like
02d62538 N .stab

When I put the option --print-size --size-sort, it gives me (in a big list)
02d62538 fd3c61e0 N .stab

so I wonder that the second column should be the size. However, if I add all those second columns, the sum result is incoherent (much much bigger) with the real size of the final binary. Maybe is it masked with something I am missing?


> 
> 
> 
> > Also, the second column represents the symbol size (in bytes I
> 
> > presume).
> 
> 
> 
> From your example, I doubt that: ff42d001 does not seem a likely size
> 
> for anything.
> 
> 
> 
> -- 
> 
> Niklas Holsti
> 
> Tidorum Ltd
> 
> niklas holsti tidorum fi
> 
>       .      @       .

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-01 13:56   ` Rego, P.
@ 2013-07-01 16:49     ` G.B.
  0 siblings, 0 replies; 25+ messages in thread
From: G.B. @ 2013-07-01 16:49 UTC (permalink / raw)


On 01.07.13 15:56, Rego, P. wrote:
> On Saturday, June 29, 2013 4:10:56 AM UTC-3, Georg Bauhaus wrote:
>> On 28.06.13 21:49, Rego, P. wrote:
>>
>>> I am trying to reduce the size of an application. Is there a tool (in GNAT) which generates a report for each package elements, of how much they contribute to the total size of the obj (and the final executable)?
>>
>>
>>
>> -gnatR might be a starting point.
>
> I should build the application with "-gnatR" in the compiler section of GPS project, right? What does this generate? I did not realize the difference (maybe I did not know where to find the info). Thanks.
>

Have a look at -gnatR in the GNAT User's Guide that is
part of GNAT distributions. The switch asks the compiler
to output "representation information for declared types
and objects".

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-01 16:35       ` Rego, P.
@ 2013-07-01 18:21         ` Niklas Holsti
  2013-07-02 20:32           ` Rego, P.
  0 siblings, 1 reply; 25+ messages in thread
From: Niklas Holsti @ 2013-07-01 18:21 UTC (permalink / raw)


On 13-07-01 19:35 , Rego, P. wrote:
> On Monday, July 1, 2013 12:28:24 PM UTC-3, Niklas Holsti wrote:
>> In the linker world, "symbol value" usually means the address of the
>> object or subprogram identified by the symbol. However, sometimes
>> symbols can also stand for other kinds of values (offsets or sizes), but
>> that is less common.
> Ok, now I understand. Thanks.
> 
>> My "nm", on my 64-bit system, generates the value/address as a single
>> column with 16-digit hex values, followed by "D" and other codes in the
>> second column. Perhaps your "nm" separates the 16 hex digits into two
>> 8-digit groups, for easier reading? Are you using 32-bit or 64-bit binaries?
> I am using 32-bit binaries. Actually, it generates 2 columns of 8 hex
> digits only when I put the options --print-sizes --size-sort. Otherwise,
> it gives me something like
> 02d62538 N .stab
> 
> When I put the option --print-size --size-sort, it gives me (in a big list)
> 02d62538 fd3c61e0 N .stab
> 
> so I wonder that the second column should be the size. However,
> if I add all those second columns, the sum result is incoherent
> (much much bigger) with the real size of the final binary. Maybe
> is it masked with something I am missing?

On a 32-bit system (i686, Ubuntu) "nm --print-size --size-sort", gives
me output with a second column that does look like a size, for example:

40301408 0000003c T Handle_TMs
40301308 0000003c T Slot_Start_ISR
4030cd14 0000003c T XM_read_console
4030ccd8 0000003c T XM_write_console
4030ec60 0000003c T _TOD_Handler_initialization
40311d90 0000003c T _Timer_Manager_initialization
403106ac 0000003c T _User_extensions_Add_API_set
40302dac 0000003c T ecs_Populate_Synchronization_Message
40305294 0000003c T efw_Pool_Is_Valid
403071b4 0000003c T emb_Max_RT_To_BC_Transfer_Duration
4030d83c 00000040 T Clock_driver_support_initialize_hardware
403026c4 00000040 T Time_Span_Max

Running with --numeric-sort instead of --size-sort show that the "size"
is indeed computed as the difference between the address of the symbol
and the address of the symbol with the next higher address, as "man nm"
says.m

Perhaps you can show a bit more of your nm output? Could give us more
basis for guessing what the second column might mean, if it is not "size".

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
      .      @       .


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-01 18:21         ` Niklas Holsti
@ 2013-07-02 20:32           ` Rego, P.
  2013-07-06 16:06             ` Niklas Holsti
  0 siblings, 1 reply; 25+ messages in thread
From: Rego, P. @ 2013-07-02 20:32 UTC (permalink / raw)


> On a 32-bit system (i686, Ubuntu) "nm --print-size --size-sort", gives
> me output with a second column that does look like a size, for example:
> 40301408 0000003c T Handle_TMs
> 40301308 0000003c T Slot_Start_ISR
> 4030cd14 0000003c T XM_read_console
> 4030ccd8 0000003c T XM_write_console
> 4030ec60 0000003c T _TOD_Handler_initialization
> 40311d90 0000003c T _Timer_Manager_initialization
> 403106ac 0000003c T _User_extensions_Add_API_set
> 40302dac 0000003c T ecs_Populate_Synchronization_Message
> 40305294 0000003c T efw_Pool_Is_Valid
> 403071b4 0000003c T emb_Max_RT_To_BC_Transfer_Duration
> 4030d83c 00000040 T Clock_driver_support_initialize_hardware
> 403026c4 00000040 T Time_Span_Max
That's the same with me. 

> Running with --numeric-sort instead of --size-sort show that the "size"
> is indeed computed as the difference between the address of the symbol
> and the address of the symbol with the next higher address, as "man nm"
> says.m
> Perhaps you can show a bit more of your nm output? Could give us more
> basis for guessing what the second column might mean, if it is not "size".
Actually, the only point it that, when I add all the second column values, the resulting value is totally different from the real binary size.

Trying a simple example.

  -- bla.adb
  with Ada.Text_IO;
  procedure Bla is
    procedure Write_Something is
    begin
	Ada.Text_IO.Put_Line ("just a test");
    end Write_Something;
  begin
    	Write_Something;
  end Bla;

and building it with gnatmake bla.adb.

If I run 
   nm --print-size --size-sort bla.o

the console returns me

00000000 00000014 r .rdata
00000022 0000001e T __ada_bla
00000000 00000022 t _bla__write_something.0

and the read size of bla.o is 611 bytes. If I add the second values, the total result is 16#44" which is 68 in decimal, which is not 611 bytes.

Also, if I run 
   nm --print-size --size-sort bla.exe > bla.txt

the bla.parse is big, but adding the second column, the result (in Excel I convert it to decimal before adding) is 8.61147E+12 and the real bla.exe size is 1512500 bytes, also very different.



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-02 20:32           ` Rego, P.
@ 2013-07-06 16:06             ` Niklas Holsti
  2013-07-10 11:57               ` Rego, P.
  0 siblings, 1 reply; 25+ messages in thread
From: Niklas Holsti @ 2013-07-06 16:06 UTC (permalink / raw)


On 13-07-02 23:32 , Rego, P. wrote:
>> On a 32-bit system (i686, Ubuntu) "nm --print-size --size-sort", gives
>> me output with a second column that does look like a size, for example:
>> 40301408 0000003c T Handle_TMs
>> 40301308 0000003c T Slot_Start_ISR
>> 4030cd14 0000003c T XM_read_console
>> 4030ccd8 0000003c T XM_write_console
>> 4030ec60 0000003c T _TOD_Handler_initialization
>> 40311d90 0000003c T _Timer_Manager_initialization
>> 403106ac 0000003c T _User_extensions_Add_API_set
>> 40302dac 0000003c T ecs_Populate_Synchronization_Message
>> 40305294 0000003c T efw_Pool_Is_Valid
>> 403071b4 0000003c T emb_Max_RT_To_BC_Transfer_Duration
>> 4030d83c 00000040 T Clock_driver_support_initialize_hardware
>> 403026c4 00000040 T Time_Span_Max
> That's the same with me. 
> 
>> Running with --numeric-sort instead of --size-sort show that the "size"
>> is indeed computed as the difference between the address of the symbol
>> and the address of the symbol with the next higher address, as "man nm"
>> says.m
>> Perhaps you can show a bit more of your nm output? Could give us more
>> basis for guessing what the second column might mean, if it is not "size".

> Actually, the only point it that, when I add all the second column values,
> the resulting value is totally different from the real binary size.
> 
> Trying a simple example.
> 
>   -- bla.adb
>   with Ada.Text_IO;
>   procedure Bla is
>     procedure Write_Something is
>     begin
> 	Ada.Text_IO.Put_Line ("just a test");
>     end Write_Something;
>   begin
>     	Write_Something;
>   end Bla;
> 
> and building it with gnatmake bla.adb.
> 
> If I run 
>    nm --print-size --size-sort bla.o
> 
> the console returns me
> 
> 00000000 00000014 r .rdata
> 00000022 0000001e T __ada_bla
> 00000000 00000022 t _bla__write_something.0

Looks about right to me.
> 
> and the read size of bla.o is 611 bytes.

What do you mean by "read size"? Perhaps this is a typo, and you meant
to write "real size"?

If you mean the total size of the file bla.o (from the directory
listing, e.g "ls -l"), this is not a useful comparison, because the file
contains much more data than just the machine code: there are headers,
symbol tables, and other debug information -- among other things, the
information that "nm" uses to associate machine code addresses with
identifier symbols.

> If I add the second values,
> the total result is 16#44" which is 68 in decimal, which is not 611 bytes.
> 
> Also, if I run 
>    nm --print-size --size-sort bla.exe > bla.txt
> 
> the bla.parse is big,

What do you mean by "bla.parse"? Perhaps "bla.txt"? The size of this
text file is totally irrelevant.

> but adding the second column, the result (in Excel I convert it
> to decimal before adding) is 8.61147E+12 and the real bla.exe
> size is 1512500 bytes, also very different.

Again, if by "real size" you mean the entire size of the file bla.exe,
the comparison it not useful, just as for bla.o: bla.exe contains a lot
more data than just the machine code.

The Excel summed size that you show is surprising. Perhaps the method
"nm" uses to compute function size (as the difference between to
adjacent symbols) does not work correctly for some special case, such as
the function with the highest address. Without seeing the whole output
from "nm", it is difficult to say.

To find the total amount of data/code, in an exe, I would look either at
the link map output, or use "objdump" to see the sizes of the segments.

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
      .      @       .

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-06 16:06             ` Niklas Holsti
@ 2013-07-10 11:57               ` Rego, P.
  2013-07-10 11:58                 ` Rego, P.
  2013-07-11  8:35                 ` Niklas Holsti
  0 siblings, 2 replies; 25+ messages in thread
From: Rego, P. @ 2013-07-10 11:57 UTC (permalink / raw)


> > and the read size of bla.o is 611 bytes.
> What do you mean by "read size"? Perhaps this is a typo, and you meant
> to write "real size"?
> If you mean the total size of the file bla.o (from the directory
> listing, e.g "ls -l"), this is not a useful comparison, because the file
> contains much more data than just the machine code: there are headers,
> symbol tables, and other debug information -- among other things, the
> information that "nm" uses to associate machine code addresses with
> identifier symbols.

Yes, it is from directory listing. In this case, the 'size' provided by "ls -l" should be bigger, right? 

> > If I add the second values,
> > the total result is 16#44" which is 68 in decimal, which is not 611 bytes.
> > Also, if I run 
> >    nm --print-size --size-sort bla.exe > bla.txt
> > the bla.parse is big,

> What do you mean by "bla.parse"? Perhaps "bla.txt"? The size of this
> text file is totally irrelevant.
Sorry, I meant "bla.txt". I agree, it was just a comment.

> > but adding the second column, the result (in Excel I convert it
> > to decimal before adding) is 8.61147E+12 and the real bla.exe
> > size is 1512500 bytes, also very different.
> Again, if by "real size" you mean the entire size of the file bla.exe,
> the comparison it not useful, just as for bla.o: bla.exe contains a lot
> more data than just the machine code.
I don't think 8.61147E+12 is irrelevant. Again, if you consider the lots of things added by "ls -l", the size of bla.exe should be bigger.
 
> The Excel summed size that you show is surprising. Perhaps the method
> "nm" uses to compute function size (as the difference between to
> adjacent symbols) does not work correctly for some special case, such as
> the function with the highest address. Without seeing the whole output
> from "nm", it is difficult to say.
Since the output is big, I will paste it in the next post.

> To find the total amount of data/code, in an exe, I would look either at
> the link map output, or use "objdump" to see the sizes of the segments.
I will run objdump so.

Thanks.

Rego.

> -- 
> 
> Niklas Holsti
> 
> Tidorum Ltd
> 
> niklas holsti tidorum fi
> 
>       .      @       .


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-10 11:57               ` Rego, P.
@ 2013-07-10 11:58                 ` Rego, P.
  2013-07-11  9:10                   ` Niklas Holsti
  2013-07-11  8:35                 ` Niklas Holsti
  1 sibling, 1 reply; 25+ messages in thread
From: Rego, P. @ 2013-07-10 11:58 UTC (permalink / raw)


Output "bla.txt" of nm:

00414176 ffbec001 D ___gl_locking_policy
00414175 ffbec001 D ___gl_queuing_policy
00414174 ffbec001 D ___gl_task_dispatching_policy
00414177 ffbec001 D ___gl_wc_encoding
00414bd8 ffbec001 D ___gnat_path_separator
00414638 ffbec001 D _ada__finalization__controlledF
004143f8 ffbec001 D _ada__streams__root_stream_typeF
00414930 ffbec001 D _ada__tags_E
004148bc ffbec001 D _ada__text_io__text_afcbF
004147d0 ffbec001 D _system__file_control_block_E
00414181 ffbec001 D _system__restrictions__rident__boolean_entry_barriers
00414182 ffbec001 D _system__restrictions__rident__max_entry_queue_depth
00414183 ffbec001 D _system__restrictions__rident__no_dynamic_interrupts
00414184 ffbec001 D _system__restrictions__rident__no_requeue
00414185 ffbec001 D _system__restrictions__rident__no_task_attributes
00414180 ffbec001 D _system__restrictions_E
00414b40 ffbec001 D _system__stack_checking_E
00414aa0 ffbec001 D _system__standard_library__exception_trace
004149c0 ffbec001 D _system__standard_library_E
00414b80 ffbec001 D _system__stream_attributes_E
00414c06 ffbec001 D _system__wch_con__wcem_brackets
00414c04 ffbec001 D _system__wch_con__wcem_euc
00414c01 ffbec001 D _system__wch_con__wcem_hex
00414c03 ffbec001 D _system__wch_con__wcem_shift_jis
00414c02 ffbec001 D _system__wch_con__wcem_upper
00414c05 ffbec001 D _system__wch_con__wcem_utf8
00414c00 ffbec001 D _system__wch_con_E
00414b36 ffbec002 D _ada__exceptions__exception_traces__nlineXn
00414b41 ffbec003 D _system__stack_checking__multi_processor
0041c0a4 ffbe4004 i .idata$4
0041c0a0 ffbe4004 i .idata$4
0041c09c ffbe4004 i .idata$4
0041c098 ffbe4004 i .idata$4
0041c094 ffbe4004 i .idata$4
0041c090 ffbe4004 i .idata$4
0041c08c ffbe4004 i .idata$4
0041c088 ffbe4004 i .idata$4
0041c084 ffbe4004 i .idata$4
0041c080 ffbe4004 i .idata$4
0041c07c ffbe4004 i .idata$4
0041c074 ffbe4004 i .idata$4
0041c070 ffbe4004 i .idata$4
0041c06c ffbe4004 i .idata$4
0041c064 ffbe4004 i .idata$4
0041c234 ffbe4004 i .idata$4
0041c0f8 ffbe4004 i .idata$4
0041c0fc ffbe4004 i .idata$4
0041c104 ffbe4004 i .idata$4
0041c108 ffbe4004 i .idata$4
0041c10c ffbe4004 i .idata$4
0041c110 ffbe4004 i .idata$4
0041c190 ffbe4004 i .idata$4
0041c230 ffbe4004 i .idata$4
0041c22c ffbe4004 i .idata$4
0041c118 ffbe4004 i .idata$4
0041c11c ffbe4004 i .idata$4
0041c120 ffbe4004 i .idata$4
0041c228 ffbe4004 i .idata$4
0041c224 ffbe4004 i .idata$4
0041c238 ffbe4004 i .idata$4
0041c21c ffbe4004 i .idata$4
0041c0b0 ffbe4004 i .idata$4
0041c214 ffbe4004 i .idata$4
0041c0bc ffbe4004 i .idata$4
0041c0c0 ffbe4004 i .idata$4
0041c124 ffbe4004 i .idata$4
0041c0c4 ffbe4004 i .idata$4
0041c128 ffbe4004 i .idata$4
0041c18c ffbe4004 i .idata$4
0041c0c8 ffbe4004 i .idata$4
0041c0cc ffbe4004 i .idata$4
0041c0d0 ffbe4004 i .idata$4
0041c188 ffbe4004 i .idata$4
0041c12c ffbe4004 i .idata$4
0041c130 ffbe4004 i .idata$4
0041c0d4 ffbe4004 i .idata$4
0041c0f4 ffbe4004 i .idata$4
0041c184 ffbe4004 i .idata$4
0041c210 ffbe4004 i .idata$4
0041c20c ffbe4004 i .idata$4
0041c208 ffbe4004 i .idata$4
0041c0d8 ffbe4004 i .idata$4
0041c204 ffbe4004 i .idata$4
0041c200 ffbe4004 i .idata$4
0041c0dc ffbe4004 i .idata$4
0041c0e0 ffbe4004 i .idata$4
0041c0e4 ffbe4004 i .idata$4
0041c0e8 ffbe4004 i .idata$4
0041c0ec ffbe4004 i .idata$4
0041c0a8 ffbe4004 i .idata$4
0041c180 ffbe4004 i .idata$4
0041c220 ffbe4004 i .idata$4
0041c17c ffbe4004 i .idata$4
0041c0f0 ffbe4004 i .idata$4
0041c0ac ffbe4004 i .idata$4
0041c0b4 ffbe4004 i .idata$4
0041c134 ffbe4004 i .idata$4
0041c138 ffbe4004 i .idata$4
0041c23c ffbe4004 i .idata$4
0041c194 ffbe4004 i .idata$4
0041c218 ffbe4004 i .idata$4
0041c0b8 ffbe4004 i .idata$4
0041c114 ffbe4004 i .idata$4
0041c198 ffbe4004 i .idata$4
0041c1fc ffbe4004 i .idata$4
0041c1f8 ffbe4004 i .idata$4
0041c1f4 ffbe4004 i .idata$4
0041c1f0 ffbe4004 i .idata$4
0041c1ec ffbe4004 i .idata$4
0041c1e8 ffbe4004 i .idata$4
0041c13c ffbe4004 i .idata$4
0041c1e4 ffbe4004 i .idata$4
0041c1e0 ffbe4004 i .idata$4
0041c140 ffbe4004 i .idata$4
0041c144 ffbe4004 i .idata$4
0041c1dc ffbe4004 i .idata$4
0041c148 ffbe4004 i .idata$4
0041c14c ffbe4004 i .idata$4
0041c154 ffbe4004 i .idata$4
0041c158 ffbe4004 i .idata$4
0041c15c ffbe4004 i .idata$4
0041c160 ffbe4004 i .idata$4
0041c1d8 ffbe4004 i .idata$4
0041c164 ffbe4004 i .idata$4
0041c168 ffbe4004 i .idata$4
0041c1d4 ffbe4004 i .idata$4
0041c1d0 ffbe4004 i .idata$4
0041c1cc ffbe4004 i .idata$4
0041c16c ffbe4004 i .idata$4
0041c1c8 ffbe4004 i .idata$4
0041c1c4 ffbe4004 i .idata$4
0041c170 ffbe4004 i .idata$4
0041c174 ffbe4004 i .idata$4
0041c1c0 ffbe4004 i .idata$4
0041c1bc ffbe4004 i .idata$4
0041c1b8 ffbe4004 i .idata$4
0041c1b4 ffbe4004 i .idata$4
0041c1b0 ffbe4004 i .idata$4
0041c1ac ffbe4004 i .idata$4
0041c1a8 ffbe4004 i .idata$4
0041c1a4 ffbe4004 i .idata$4
0041c1a0 ffbe4004 i .idata$4
0041c19c ffbe4004 i .idata$4
0041c178 ffbe4004 i .idata$4
0041c240 ffbe4004 i .idata$5
0041c24c ffbe4004 i .idata$5
0041c250 ffbe4004 i .idata$5
0041c2d4 ffbe4004 i .idata$5
0041c2d8 ffbe4004 i .idata$5
0041c324 ffbe4004 i .idata$5
0041c328 ffbe4004 i .idata$5
0041c418 ffbe4004 i .idata$5
0041ca84 ffbe4004 i .idata$7
0041cb38 ffbe4004 i .idata$7
0041cc30 ffbe4004 i .idata$7
0041cbc8 ffbe4004 i .idata$7
0041cc2c ffbe4004 i .idata$7
0041cb34 ffbe4004 i .idata$7
0041cbcc ffbe4004 i .idata$7
0041cb30 ffbe4004 i .idata$7
0041cb2c ffbe4004 i .idata$7
0041cb28 ffbe4004 i .idata$7
0041cb48 ffbe4004 i .idata$7
0041cc28 ffbe4004 i .idata$7
0041cc24 ffbe4004 i .idata$7
0041cb4c ffbe4004 i .idata$7
0041cb24 ffbe4004 i .idata$7
0041cb20 ffbe4004 i .idata$7
0041cb50 ffbe4004 i .idata$7
0041cb1c ffbe4004 i .idata$7
0041cb54 ffbe4004 i .idata$7
0041cb58 ffbe4004 i .idata$7
0041cb5c ffbe4004 i .idata$7
0041cb60 ffbe4004 i .idata$7
0041cb64 ffbe4004 i .idata$7
0041cb18 ffbe4004 i .idata$7
0041cb68 ffbe4004 i .idata$7
0041cc20 ffbe4004 i .idata$7
0041cb6c ffbe4004 i .idata$7
0041cb70 ffbe4004 i .idata$7
0041cb74 ffbe4004 i .idata$7
0041cc1c ffbe4004 i .idata$7
0041cb14 ffbe4004 i .idata$7
0041cb78 ffbe4004 i .idata$7
0041cb7c ffbe4004 i .idata$7
0041cb80 ffbe4004 i .idata$7
0041cb10 ffbe4004 i .idata$7
0041cb84 ffbe4004 i .idata$7
0041cb88 ffbe4004 i .idata$7
0041cb8c ffbe4004 i .idata$7
0041cb0c ffbe4004 i .idata$7
0041cb08 ffbe4004 i .idata$7
0041cb90 ffbe4004 i .idata$7
0041cb94 ffbe4004 i .idata$7
0041cb98 ffbe4004 i .idata$7
0041cb9c ffbe4004 i .idata$7
0041cb04 ffbe4004 i .idata$7
0041cb00 ffbe4004 i .idata$7
0041cafc ffbe4004 i .idata$7
0041cba0 ffbe4004 i .idata$7
0041cba4 ffbe4004 i .idata$7
0041cba8 ffbe4004 i .idata$7
0041cc18 ffbe4004 i .idata$7
0041caf8 ffbe4004 i .idata$7
0041caf4 ffbe4004 i .idata$7
0041cc14 ffbe4004 i .idata$7
0041cbc0 ffbe4004 i .idata$7
0041cbac ffbe4004 i .idata$7
0041cae0 ffbe4004 i .idata$7
0041cc10 ffbe4004 i .idata$7
0041cadc ffbe4004 i .idata$7
0041cad8 ffbe4004 i .idata$7
0041cad4 ffbe4004 i .idata$7
0041cad0 ffbe4004 i .idata$7
0041cacc ffbe4004 i .idata$7
0041cac8 ffbe4004 i .idata$7
0041cac4 ffbe4004 i .idata$7
0041cac0 ffbe4004 i .idata$7
0041cabc ffbe4004 i .idata$7
0041cab8 ffbe4004 i .idata$7
0041cab4 ffbe4004 i .idata$7
0041cab0 ffbe4004 i .idata$7
0041caac ffbe4004 i .idata$7
0041cc0c ffbe4004 i .idata$7
0041caa8 ffbe4004 i .idata$7
0041caa4 ffbe4004 i .idata$7
0041caa0 ffbe4004 i .idata$7
0041ca9c ffbe4004 i .idata$7
0041ca98 ffbe4004 i .idata$7
0041ca94 ffbe4004 i .idata$7
0041ca90 ffbe4004 i .idata$7
0041ca8c ffbe4004 i .idata$7
0041ca88 ffbe4004 i .idata$7
0041cc08 ffbe4004 i .idata$7
0041ca80 ffbe4004 i .idata$7
0041ca7c ffbe4004 i .idata$7
0041ca78 ffbe4004 i .idata$7
0041ca74 ffbe4004 i .idata$7
0041cc04 ffbe4004 i .idata$7
0041ca70 ffbe4004 i .idata$7
0041cc00 ffbe4004 i .idata$7
0041cbd0 ffbe4004 i .idata$7
0041ca6c ffbe4004 i .idata$7
0041ca68 ffbe4004 i .idata$7
0041ca64 ffbe4004 i .idata$7
0041cbfc ffbe4004 i .idata$7
0041cbb0 ffbe4004 i .idata$7
0041cbf8 ffbe4004 i .idata$7
0041cbb4 ffbe4004 i .idata$7
0041cbb8 ffbe4004 i .idata$7
0041cbf4 ffbe4004 i .idata$7
0041cbf0 ffbe4004 i .idata$7
0041cbec ffbe4004 i .idata$7
0041cbe8 ffbe4004 i .idata$7
0041cbe4 ffbe4004 i .idata$7
0041cbe0 ffbe4004 i .idata$7
0041cbdc ffbe4004 i .idata$7
0041ca50 ffbe4004 i .idata$7
0041cbbc ffbe4004 i .idata$7
0041ca4c ffbe4004 i .idata$7
0041cbd8 ffbe4004 i .idata$7
0041cbd4 ffbe4004 i .idata$7
0041cbc4 ffbe4004 i .idata$7
00415628 ffbeb004 r .rdata
00417484 ffbeb004 r ___EH_FRAME_END__
00414170 ffbec004 D ___gl_default_stack_size
00418024 ffbe8004 B ___gl_detect_blocking
0041802c ffbe8004 B ___gl_exception_tracebacks
00418038 ffbe8004 B ___gl_interrupt_states
0041417c ffbec004 D ___gl_main_priority
00418034 ffbe8004 B ___gl_num_interrupt_states
0041803c ffbe8004 B ___gl_restrictions
00414178 ffbec004 D ___gl_time_slice_val
00418030 ffbe8004 B ___gl_unreserve_all_interrupts
00418028 ffbe8004 B ___gl_zero_cost_exceptions
00414bc8 ffbec004 D ___gnat_argument_needs_quote
00414ba0 ffbec004 D ___gnat_constant_iolbf
00414b9c ffbec004 D ___gnat_constant_ionbf
00414b98 ffbec004 D ___gnat_constant_l_tmpnam
00414b94 ffbec004 D ___gnat_constant_seek_cur
00414b90 ffbec004 D ___gnat_constant_seek_end
0041b110 ffbe8004 B ___gnat_constant_seek_set
00414bc0 ffbec004 D ___gnat_environment_char
00414b38 ffbec004 D ___gnat_exception_actions_global_action
00414b3c ffbec004 D ___gnat_exception_actions_initialized
00418020 ffbe8004 B ___gnat_handler_installed
00414bd4 ffbec004 D ___gnat_library_template
00414bd0 ffbec004 D ___gnat_max_path_len
00414bc4 ffbec004 D ___gnat_prj_add_obj_files
00413220 ffbff004 T __CTOR_LIST__
00414000 ffbec004 D __data_start__
0041322c ffbff004 T __DTOR_LIST__
0041c330 ffbe4004 I __imp____mb_cur_max
0041c334 ffbe4004 I __imp____p__environ
0041c338 ffbe4004 I __imp____p__fmode
0041c33c ffbe4004 I __imp____set_app_type
0041c340 ffbe4004 I __imp___assert
0041c344 ffbe4004 I __imp___cexit
0041c348 ffbe4004 I __imp___errno
0041c34c ffbe4004 I __imp___fileno
0041c350 ffbe4004 I __imp___findclose
0041c354 ffbe4004 I __imp___findfirst
0041c358 ffbe4004 I __imp___findnext
0041c35c ffbe4004 I __imp___fullpath
0041c360 ffbe4004 I __imp___get_osfhandle
0041c364 ffbe4004 I __imp___global_unwind2
0041c368 ffbe4004 I __imp___iob
0041c36c ffbe4004 I __imp___isctype
0041c370 ffbe4004 I __imp___msize
0041c374 ffbe4004 I __imp___onexit
0041c378 ffbe4004 I __imp___pctype
0041c37c ffbe4004 I __imp___setmode
0041c380 ffbe4004 I __imp__abort
0041c384 ffbe4004 I __imp__atexit
0041c388 ffbe4004 I __imp__atoi
0041c38c ffbe4004 I __imp__clearerr
0041c2e0 ffbe4004 I __imp__close
0041c258 ffbe4004 I __imp__CloseHandle@4
0041c25c ffbe4004 I __imp__CreateFileA@28
0041c260 ffbe4004 I __imp__CreateProcessA@40
0041c264 ffbe4004 I __imp__CreateSemaphoreA@16
0041c2e4 ffbe4004 I __imp__dup
0041c2e8 ffbe4004 I __imp__dup2
0041c268 ffbe4004 I __imp__EnterCriticalSection@4
0041c390 ffbe4004 I __imp__exit
0041c26c ffbe4004 I __imp__ExitProcess@4
0041c270 ffbe4004 I __imp__ExpandEnvironmentStringsA@12
0041c394 ffbe4004 I __imp__fclose
0041c398 ffbe4004 I __imp__feof
0041c39c ffbe4004 I __imp__ferror
0041c3a0 ffbe4004 I __imp__fflush
0041c3a4 ffbe4004 I __imp__fgetc
0041c2ec ffbe4004 I __imp__fileno
0041c274 ffbe4004 I __imp__FindAtomA@4
0041c278 ffbe4004 I __imp__FlushConsoleInputBuffer@4
0041c3a8 ffbe4004 I __imp__fopen
0041c3ac ffbe4004 I __imp__fprintf
0041c3b0 ffbe4004 I __imp__fputc
0041c3b4 ffbe4004 I __imp__fread
0041c3b8 ffbe4004 I __imp__free
0041c3bc ffbe4004 I __imp__freopen
0041c3c0 ffbe4004 I __imp__fseek
0041c2f0 ffbe4004 I __imp__fstat
0041c3c4 ffbe4004 I __imp__fwrite
0041c27c ffbe4004 I __imp__GetAtomNameA@12
0041c2f4 ffbe4004 I __imp__getch
0041c3c8 ffbe4004 I __imp__getchar
0041c280 ffbe4004 I __imp__GetCommandLineA@0
0041c284 ffbe4004 I __imp__GetCurrentProcess@0
0041c2f8 ffbe4004 I __imp__getcwd
0041c3cc ffbe4004 I __imp__getenv
0041c288 ffbe4004 I __imp__GetExitCodeProcess@8
0041c28c ffbe4004 I __imp__GetFileAttributesA@4
0041c290 ffbe4004 I __imp__GetFileTime@16
0041c294 ffbe4004 I __imp__GetModuleHandleA@4
0041c298 ffbe4004 I __imp__GetPriorityClass@4
0041c29c ffbe4004 I __imp__GetStdHandle@4
0041c2a0 ffbe4004 I __imp__GetVersion@0
0041c2a4 ffbe4004 I __imp__GetVersionExA@4
0041c3d0 ffbe4004 I __imp__gmtime
0041c2a8 ffbe4004 I __imp__InitializeCriticalSection@4
0041c2ac ffbe4004 I __imp__InterlockedDecrement@4
0041c2b0 ffbe4004 I __imp__InterlockedIncrement@4
0041c2fc ffbe4004 I __imp__isatty
0041c2b4 ffbe4004 I __imp__IsBadCodePtr@4
0041c300 ffbe4004 I __imp__kbhit
0041c2b8 ffbe4004 I __imp__LeaveCriticalSection@4
0041c304 ffbe4004 I __imp__lseek
0041c3d4 ffbe4004 I __imp__malloc
0041c3d8 ffbe4004 I __imp__memcmp
0041c3dc ffbe4004 I __imp__memcpy
0041c3e0 ffbe4004 I __imp__memset
0041c308 ffbe4004 I __imp__mktemp
0041c30c ffbe4004 I __imp__open
0041c3e4 ffbe4004 I __imp__putchar
0041c3e8 ffbe4004 I __imp__realloc
0041c248 ffbe4004 I __imp__RegOpenKeyExA@20
0041c2bc ffbe4004 I __imp__ReleaseSemaphore@12
0041c3ec ffbe4004 I __imp__rewind
0041c3f0 ffbe4004 I __imp__scanf
0041c2c0 ffbe4004 I __imp__SetFileTime@16
0041c2c4 ffbe4004 I __imp__SetUnhandledExceptionFilter@4
0041c3f4 ffbe4004 I __imp__setvbuf
0041c3f8 ffbe4004 I __imp__signal
0041c2c8 ffbe4004 I __imp__Sleep@4
0041c310 ffbe4004 I __imp__spawnvp
0041c3fc ffbe4004 I __imp__sprintf
0041c314 ffbe4004 I __imp__stat
0041c400 ffbe4004 I __imp__strcat
0041c404 ffbe4004 I __imp__strcpy
0041c408 ffbe4004 I __imp__strlen
0041c40c ffbe4004 I __imp__strncpy
0041c410 ffbe4004 I __imp__strstr
0041c318 ffbe4004 I __imp__tempnam
0041c414 ffbe4004 I __imp__ungetc
0041c31c ffbe4004 I __imp__unlink
0041c320 ffbe4004 I __imp__utime
0041c2cc ffbe4004 I __imp__WaitForMultipleObjects@16
0041c2d0 ffbe4004 I __imp__WaitForSingleObject@8
00414b14 ffbec004 D _ada__exceptions__counter
00414080 ffbec004 D _ada__exceptions__last_chance_handlerB
00414084 ffbec004 D _ada__exceptions__last_chance_handlerS
00414ab8 ffbec004 D _ada__exceptions__null_id
00414ab4 ffbec004 D _ada__exceptions__null_loc
00414ab0 ffbec004 D _ada__exceptions_E
00414078 ffbec004 D _ada__exceptionsB
0041407c ffbec004 D _ada__exceptionsS
0041a984 ffbe8004 B _ada__finalization__C284s
00414658 ffbec004 D _ada__finalization__C285s
0041a988 ffbe8004 B _ada__finalization__C287s
0041465c ffbec004 D _ada__finalization__C288s
0041a98c ffbe8004 B _ada__finalization__C290s
00414660 ffbec004 D _ada__finalization__C291s
0041a990 ffbe8004 B _ada__finalization__C293s
00414664 ffbec004 D _ada__finalization__C294s
0041a994 ffbe8004 B _ada__finalization__C306s
00414668 ffbec004 D _ada__finalization__C307s
0041a998 ffbe8004 B _ada__finalization__C319s
0041466c ffbec004 D _ada__finalization__C320s
0041a99c ffbe8004 B _ada__finalization__C332s
00414670 ffbec004 D _ada__finalization__C333s
0041a9a0 ffbe8004 B _ada__finalization__C345s
00414674 ffbec004 D _ada__finalization__C346s
0041a9a4 ffbe8004 B _ada__finalization__C358s
00414678 ffbec004 D _ada__finalization__C359s
0041467c ffbec004 D _ada__finalization__C372s
0041aa44 ffbe8004 B _ada__finalization__C679s
004146b4 ffbec004 D _ada__finalization__C680s
0041aa48 ffbe8004 B _ada__finalization__C682s
004146b8 ffbec004 D _ada__finalization__C683s
0041aa4c ffbe8004 B _ada__finalization__C685s
004146bc ffbec004 D _ada__finalization__C686s
0041aa50 ffbe8004 B _ada__finalization__C698s
004146c0 ffbec004 D _ada__finalization__C699s
0041aa54 ffbe8004 B _ada__finalization__C711s
004146c4 ffbec004 D _ada__finalization__C712s
0041aa58 ffbe8004 B _ada__finalization__C724s
004146c8 ffbec004 D _ada__finalization__C725s
0041aa5c ffbe8004 B _ada__finalization__C737s
004146cc ffbec004 D _ada__finalization__C738s
00414634 ffbec004 D _ada__finalization__controlledP
00414680 ffbec004 D _ada__finalization__limited_controlledP
0041ab08 ffbe8004 B _ada__finalization__list_controller__C280s
00414748 ffbec004 D _ada__finalization__list_controller__C281s
0041ab0c ffbe8004 B _ada__finalization__list_controller__C283s
0041474c ffbec004 D _ada__finalization__list_controller__C284s
0041ab10 ffbe8004 B _ada__finalization__list_controller__C296s
00414750 ffbec004 D _ada__finalization__list_controller__C297s
00414754 ffbec004 D _ada__finalization__list_controller__C310s
0041abc8 ffbe8004 B _ada__finalization__list_controller__C601s
004147a4 ffbec004 D _ada__finalization__list_controller__C602s
0041abcc ffbe8004 B _ada__finalization__list_controller__C604s
004147a8 ffbec004 D _ada__finalization__list_controller__C605s
0041abd0 ffbe8004 B _ada__finalization__list_controller__C607s
004147ac ffbec004 D _ada__finalization__list_controller__C608s
0041abd4 ffbe8004 B _ada__finalization__list_controller__C620s
004147b0 ffbec004 D _ada__finalization__list_controller__C621s
00414758 ffbec004 D _ada__finalization__list_controller__list_controllerP
004146f4 ffbec004 D _ada__finalization__list_controller__simple_list_controllerP
004146f0 ffbec004 D _ada__finalization__list_controller_E
0041415c ffbec004 D _ada__finalization__list_controllerB
00414160 ffbec004 D _ada__finalization__list_controllerS
00414630 ffbec004 D _ada__finalization_E
00414118 ffbec004 D _ada__finalizationB
0041411c ffbec004 D _ada__finalizationS
004142e4 ffbec004 D _ada__io_exceptions__R11s
00414320 ffbec004 D _ada__io_exceptions__R14s
00414358 ffbec004 D _ada__io_exceptions__R17s
00414394 ffbec004 D _ada__io_exceptions__R20s
004143d0 ffbec004 D _ada__io_exceptions__R23s
00414234 ffbec004 D _ada__io_exceptions__R2s
00414270 ffbec004 D _ada__io_exceptions__R5s
004142ac ffbec004 D _ada__io_exceptions__R8s
00414210 ffbec004 D _ada__io_exceptions_E
00414150 ffbec004 D _ada__io_exceptionsS
0041a59c ffbe8004 B _ada__streams__C252s
00414418 ffbec004 D _ada__streams__C253s
0041a5a0 ffbe8004 B _ada__streams__C265s
0041441c ffbec004 D _ada__streams__C266s
004143f4 ffbec004 D _ada__streams__root_stream_typeP
004143f0 ffbec004 D _ada__streams_E
004140f8 ffbec004 D _ada__streamsS
00414964 ffbec004 D _ada__tags__default_prim_op_count
0041497c ffbec004 D _ada__tags__dt_entry_size
00414974 ffbec004 D _ada__tags__dt_offset_to_top_size
00414968 ffbec004 D _ada__tags__dt_prologue_size
0041496c ffbec004 D _ada__tags__dt_signature_size
00414970 ffbec004 D _ada__tags__dt_tagged_kind_size
00414978 ffbec004 D _ada__tags__dt_typeinfo_ptr_size
004149b8 ffbec004 D _ada__tags__external_tag_htable__iterator_ptrXn
004149bc ffbec004 D _ada__tags__external_tag_htable__iterator_startedXn
004149ac ffbec004 D _ada__tags__external_tag_htable__null_ptrXn
004149a0 ffbec004 D _ada__tags__k_offset_to_top
004149a8 ffbec004 D _ada__tags__k_signature
004149a4 ffbec004 D _ada__tags__k_tagged_kind
0041499c ffbec004 D _ada__tags__k_typeinfo
00414960 ffbec004 D _ada__tags__no_tag
00414944 ffbec004 D _ada__tags__R2s
00414980 ffbec004 D _ada__tags__tag_size
00414988 ffbec004 D _ada__tags__tsd_entry_size
00414984 ffbec004 D _ada__tags__tsd_prologue_size
004140fc ffbec004 D _ada__tagsB
00414100 ffbec004 D _ada__tagsS
0041ae84 ffbe8004 B _ada__text_io__C306s
004148d4 ffbec004 D _ada__text_io__C307s
004148d8 ffbec004 D _ada__text_io__C320s
0041afa4 ffbe8004 B _ada__text_io__C340s
004148ec ffbec004 D _ada__text_io__C341s
0041afa8 ffbe8004 B _ada__text_io__C343s
004148f0 ffbec004 D _ada__text_io__C344s
0041afac ffbe8004 B _ada__text_io__C346s
004148f4 ffbec004 D _ada__text_io__C347s
0041afb0 ffbe8004 B _ada__text_io__C349s
004148f8 ffbec004 D _ada__text_io__C350s
004148fc ffbec004 D _ada__text_io__C353s
0041afa0 ffbe8004 B _ada__text_io__current_err
0041af98 ffbe8004 B _ada__text_io__current_in
0041af9c ffbe8004 B _ada__text_io__current_out
004148ac ffbec004 D _ada__text_io__file_modeA
004148a8 ffbec004 D _ada__text_io__file_modeN
004148dc ffbec004 D _ada__text_io__standard_err
004148e0 ffbec004 D _ada__text_io__standard_in
004148e4 ffbec004 D _ada__text_io__standard_out
004148b8 ffbec004 D _ada__text_io__text_afcbP
004148e8 ffbec004 D _ada__text_io__type_setN
004148a4 ffbec004 D _ada__text_io__unbounded
004148a0 ffbec004 D _ada__text_io_E
00414070 ffbec004 D _ada__text_ioB
00414074 ffbec004 D _ada__text_ioS
0041406c ffbec004 D _adaS
00414060 ffbec004 D _blaB
0041b0f4 ffbe8004 B _gnat_argv
0041b0f0 ffbe8004 B _gnat_envp
00414104 ffbec004 D _interfaces__c_streamsB
00414108 ffbec004 D _interfaces__c_streamsS
004140e4 ffbec004 D _interfacesS
00414bcc ffbec004 D _max_path_len
00414c80 ffbec004 d _p.0
0041410c ffbec004 D _system__crtlS
00414208 ffbec004 D _system__exception_table__exception_htable__iterator_ptrXn
0041420c ffbec004 D _system__exception_table__exception_htable__iterator_startedXn
00414204 ffbec004 D _system__exception_table__exception_htable__null_ptrXn
00414200 ffbec004 D _system__exception_table_E
004140b4 ffbec004 D _system__exception_tableB
004140b8 ffbec004 D _system__exception_tableS
004147e8 ffbec004 D _system__file_control_block__afcbF
004147e4 ffbec004 D _system__file_control_block__afcbP
0041acc0 ffbe8004 B _system__file_control_block__C292s
0041480c ffbec004 D _system__file_control_block__C293s
00414158 ffbec004 D _system__file_control_blockS
0041ad88 ffbe8004 B _system__file_io__C288b
00414868 ffbec004 D _system__file_io__C289b
0041ad8c ffbe8004 B _system__file_io__C291b
0041486c ffbec004 D _system__file_io__C292b
0041ad90 ffbe8004 B _system__file_io__C304b
00414870 ffbec004 D _system__file_io__C305b
0041ad94 ffbe8004 B _system__file_io__C317b
00414874 ffbec004 D _system__file_io__C318b
0041ad98 ffbe8004 B _system__file_io__C330b
00414878 ffbec004 D _system__file_io__C331b
0041ad9c ffbe8004 B _system__file_io__C343b
0041487c ffbec004 D _system__file_io__C344b
0041ada0 ffbe8004 B _system__file_io__C356b
00414880 ffbec004 D _system__file_io__C357b
0041ada4 ffbe8004 B _system__file_io__C369b
00414884 ffbec004 D _system__file_io__C370b
0041ada8 ffbe8004 B _system__file_io__C382b
00414888 ffbec004 D _system__file_io__C383b
0041adac ffbe8004 B _system__file_io__C395b
0041488c ffbec004 D _system__file_io__C396b
0041adb0 ffbe8004 B _system__file_io__C408b
0041482c ffbec004 D _system__file_io__file_io_clean_up_typeP
00414824 ffbec004 D _system__file_io__open_files
00414828 ffbec004 D _system__file_io__temp_files
00414820 ffbec004 D _system__file_io_E
00414110 ffbec004 D _system__file_ioB
00414114 ffbec004 D _system__file_ioS
0041a7e4 ffbe8004 B _system__finalization_implementation__C295s
00414570 ffbec004 D _system__finalization_implementation__C296s
0041a7e8 ffbe8004 B _system__finalization_implementation__C308s
00414574 ffbec004 D _system__finalization_implementation__C309s
0041a7ec ffbe8004 B _system__finalization_implementation__C321s
00414578 ffbec004 D _system__finalization_implementation__C322s
0041a7f0 ffbe8004 B _system__finalization_implementation__C334s
0041457c ffbec004 D _system__finalization_implementation__C335s
0041a7f4 ffbe8004 B _system__finalization_implementation__C347s
00414580 ffbec004 D _system__finalization_implementation__C348s
0041a7f8 ffbe8004 B _system__finalization_implementation__C360s
00414584 ffbec004 D _system__finalization_implementation__C361s
0041a7fc ffbe8004 B _system__finalization_implementation__C373s
00414588 ffbec004 D _system__finalization_implementation__C374s
0041a800 ffbe8004 B _system__finalization_implementation__C386s
0041458c ffbec004 D _system__finalization_implementation__C387s
0041a804 ffbe8004 B _system__finalization_implementation__C407s
00414590 ffbec004 D _system__finalization_implementation__C408s
00414594 ffbec004 D _system__finalization_implementation__C411s
0041a8a8 ffbe8004 B _system__finalization_implementation__C707s
004145e8 ffbec004 D _system__finalization_implementation__C708s
0041a8ac ffbe8004 B _system__finalization_implementation__C720s
004145ec ffbec004 D _system__finalization_implementation__C721s
0041a8b0 ffbe8004 B _system__finalization_implementation__C733s
004145f0 ffbec004 D _system__finalization_implementation__C734s
0041a8b4 ffbe8004 B _system__finalization_implementation__C746s
004145f4 ffbec004 D _system__finalization_implementation__C747s
0041a8b8 ffbe8004 B _system__finalization_implementation__C759s
004145f8 ffbec004 D _system__finalization_implementation__C760s
0041a8bc ffbe8004 B _system__finalization_implementation__C772s
004145fc ffbec004 D _system__finalization_implementation__C773s
0041a8c0 ffbe8004 B _system__finalization_implementation__C785s
00414600 ffbec004 D _system__finalization_implementation__C786s
0041a8c4 ffbe8004 B _system__finalization_implementation__C798s
00414604 ffbec004 D _system__finalization_implementation__C799s
0041a8c8 ffbe8004 B _system__finalization_implementation__C818s
00414608 ffbec004 D _system__finalization_implementation__C819s
0041a8cc ffbe8004 B _system__finalization_implementation__C821s
0041460c ffbec004 D _system__finalization_implementation__C822s
00414514 ffbec004 D _system__finalization_implementation__global_final_list
00414518 ffbec004 D _system__finalization_implementation__limited_record_controllerP
00414598 ffbec004 D _system__finalization_implementation__record_controllerP
00414510 ffbec004 D _system__finalization_implementation_E
00414128 ffbec004 D _system__finalization_implementationB
0041412c ffbec004 D _system__finalization_implementationS
0041a63c ffbe8004 B _system__finalization_root__C254s
00414480 ffbec004 D _system__finalization_root__C255s
0041a640 ffbe8004 B _system__finalization_root__C267s
00414484 ffbec004 D _system__finalization_root__C268s
0041a644 ffbe8004 B _system__finalization_root__C280s
00414488 ffbec004 D _system__finalization_root__C281s
0041a648 ffbe8004 B _system__finalization_root__C293s
0041448c ffbec004 D _system__finalization_root__C294s
0041a64c ffbe8004 B _system__finalization_root__C306s
00414490 ffbec004 D _system__finalization_root__C307s
00414494 ffbec004 D _system__finalization_root__C320s
0041a700 ffbe8004 B _system__finalization_root__C635s
004144dc ffbec004 D _system__finalization_root__C636s
0041a704 ffbe8004 B _system__finalization_root__C648s
004144e0 ffbec004 D _system__finalization_root__C649s
0041a708 ffbe8004 B _system__finalization_root__C661s
004144e4 ffbec004 D _system__finalization_root__C662s
0041a70c ffbe8004 B _system__finalization_root__C674s
004144e8 ffbec004 D _system__finalization_root__C675s
0041a710 ffbe8004 B _system__finalization_root__C687s
004144ec ffbec004 D _system__finalization_root__C688s
0041a714 ffbe8004 B _system__finalization_root__C700s
004144f0 ffbec004 D _system__finalization_root__C701s
0041a718 ffbe8004 B _system__finalization_root__C713s
004144f4 ffbec004 D _system__finalization_root__C714s
0041a71c ffbe8004 B _system__finalization_root__C726s
004144f8 ffbec004 D _system__finalization_root__C727s
0041a720 ffbe8004 B _system__finalization_root__C744s
004144fc ffbec004 D _system__finalization_root__C745s
0041a724 ffbe8004 B _system__finalization_root__C747s
00414500 ffbec004 D _system__finalization_root__C748s
0041a728 ffbe8004 B _system__finalization_root__C750s
00414504 ffbec004 D _system__finalization_root__C751s
0041a72c ffbe8004 B _system__finalization_root__C754s
00414508 ffbec004 D _system__finalization_root__C755s
0041450c ffbec004 D _system__finalization_root__C759s
00414434 ffbec004 D _system__finalization_root__empty_root_controlledP
00414498 ffbec004 D _system__finalization_root__root_controlledP
00414430 ffbec004 D _system__finalization_root_E
00414120 ffbec004 D _system__finalization_rootB
00414124 ffbec004 D _system__finalization_rootS
004140bc ffbec004 D _system__htableB
004140c0 ffbec004 D _system__htableS
00414b60 ffbec004 D _system__memory_E
00414164 ffbec004 D _system__memoryB
00414094 ffbec004 D _system__parametersB
00414098 ffbec004 D _system__parametersS
00414130 ffbec004 D _system__restrictionsB
00414134 ffbec004 D _system__restrictionsS
004141f4 ffbec004 D _system__secondary_stack__default_secondary_stack_size
004141f0 ffbec004 D _system__secondary_stack_E
0041409c ffbec004 D _system__secondary_stackB
004140a0 ffbec004 D _system__secondary_stackS
00414194 ffbec004 D _system__soft_links__abort_defer
0041419c ffbec004 D _system__soft_links__abort_handler
00414198 ffbec004 D _system__soft_links__abort_undefer
004141b8 ffbec004 D _system__soft_links__adafinal
004141a4 ffbec004 D _system__soft_links__check_abort_status
004141e0 ffbec004 D _system__soft_links__complete_master
004141d8 ffbec004 D _system__soft_links__current_master
004141dc ffbec004 D _system__soft_links__enter_master
004141b4 ffbec004 D _system__soft_links__finalize_global_list
004141d0 ffbec004 D _system__soft_links__get_current_excep
004141cc ffbec004 D _system__soft_links__get_exc_stack_addr
004141bc ffbec004 D _system__soft_links__get_jmpbuf_address
004141c4 ffbec004 D _system__soft_links__get_sec_stack_addr
004141d4 ffbec004 D _system__soft_links__get_stack_info
004141a8 ffbec004 D _system__soft_links__lock_task
004141c0 ffbec004 D _system__soft_links__set_jmpbuf_address
004141c8 ffbec004 D _system__soft_links__set_sec_stack_addr
004141e8 ffbec004 D _system__soft_links__task_name
004141b0 ffbec004 D _system__soft_links__task_termination_handler
004141e4 ffbec004 D _system__soft_links__timed_delay
004141ec ffbec004 D _system__soft_links__traceback_decorator_wrapper
004141ac ffbec004 D _system__soft_links__unlock_task
004141a0 ffbec004 D _system__soft_links__update_exception
00414190 ffbec004 D _system__soft_links_E
0041408c ffbec004 D _system__soft_linksB
00414090 ffbec004 D _system__soft_linksS
004140ac ffbec004 D _system__stack_checkingB
004140b0 ffbec004 D _system__stack_checkingS
00414a9c ffbec004 D _system__standard_library__exception_trace_kindN
00414a98 ffbec004 D _system__standard_library__local_partition_id
00414064 ffbec004 D _system__standard_libraryB
00414068 ffbec004 D _system__standard_libraryS
004140a4 ffbec004 D _system__storage_elementsB
004140a8 ffbec004 D _system__storage_elementsS
00414148 ffbec004 D _system__stream_attributesB
0041414c ffbec004 D _system__stream_attributesS
00414138 ffbec004 D _system__string_ops_concat_3B
0041413c ffbec004 D _system__string_ops_concat_3S
00414140 ffbec004 D _system__string_opsB
00414144 ffbec004 D _system__string_opsS
00414c20 ffbec004 D _system__traceback_entries_E
004140f0 ffbec004 D _system__traceback_entriesB
004140f4 ffbec004 D _system__traceback_entriesS
004140c4 ffbec004 D _system__tracebackB
004140c8 ffbec004 D _system__tracebackS
00414154 ffbec004 D _system__unsigned_typesS
004140dc ffbec004 D _system__wch_cnvB
004140e0 ffbec004 D _system__wch_cnvS
004140cc ffbec004 D _system__wch_conB
004140d0 ffbec004 D _system__wch_conS
004140e8 ffbec004 D _system__wch_jisB
004140ec ffbec004 D _system__wch_jisS
004140d4 ffbec004 D _system__wch_stwB
004140d8 ffbec004 D _system__wch_stwS
00414088 ffbec004 D _systemS
0041c254 ffbe4004 i fthunk
0041c2dc ffbe4004 i fthunk
0041c244 ffbe4004 i fthunk
0041c32c ffbe4004 i fthunk
0041c150 ffbe4004 i hname
0041c068 ffbe4004 i hname
0041c078 ffbe4004 i hname
0041c100 ffbe4004 i hname
00414b31 ffbec005 D _ada__exceptions__exception_data__bei_pid_headerXn
0040bde2 ffbff005 T _ada__exceptions__exception_propagation__setup_exceptionXn
0040b180 ffbff005 T _ada__exceptions__Ttracebacks_arrayBIP
004147d1 ffbec005 D _system__file_control_block__file_modeN
004147df ffbec005 D _system__file_control_block__shared_status_typeN
00412590 ffbff006 T __alloca
0041498c ffbec006 D _ada__tags__signature_kindN
00414bd9 ffbec007 D ___gnat_dir_separator
00413224 ffbff008 t .ctors
00413230 ffbff008 t .dtors
0041c684 ffbe4008 i .idata$6
0041c75c ffbe4008 i .idata$6
0041c8d8 ffbe4008 i .idata$6
0041c8ec ffbe4008 i .idata$6
0041c90c ffbe4008 i .idata$6
0041c9d8 ffbe4008 i .idata$6
0041c86c ffbe4008 i .idata$6
0041c8c4 ffbe4008 i .idata$6
0041c6e0 ffbe4008 i .idata$6
0041c6d8 ffbe4008 i .idata$6
0041c8b0 ffbe4008 i .idata$6
0041c914 ffbe4008 i .idata$6
0041c748 ffbe4008 i .idata$6
0041c928 ffbe4008 i .idata$6
0041c930 ffbe4008 i .idata$6
0041c938 ffbe4008 i .idata$6
0041c94c ffbe4008 i .idata$6
0041684c ffbeb008 r .rdata
00415074 ffbeb008 r .rdata
0041b140 ffbe8008 B ___gnat_is_cross_compiler
0041a9a8 ffbe8008 B _ada__finalization__C371s
004149b0 ffbec008 D _ada__tags__signature_typeN
0041ae88 ffbe8008 B _ada__text_io__C319s
004148b0 ffbec008 D _ada__text_io__null_str
0041b0f8 ffbe8008 B _gnat_argc
0041add8 ffbe8008 B _system__file_io__temp_file_record___SIZE
0041adc0 ffbe8008 B _system__file_io__temp_file_record__T2b___U
0041adc8 ffbe8008 B _system__file_io__temp_file_record__T3b___SIZE
0041add0 ffbe8008 B _system__file_io__temp_file_record__T3b___SIZE_A_UNIT
0041a808 ffbe8008 B _system__finalization_implementation__C410s
00414168 ffbec008 D _system__memoryS
004141f8 ffbec008 D _system__secondary_stack__ss_ratio_dynamic
0041a420 ffbe8008 B _system__secondary_stack__TchunkS___RM_SIZE
0041a410 ffbe8008 B _system__secondary_stack__TchunkS___SIZE
0041a418 ffbe8008 B _system__secondary_stack__TchunkS___SIZE_A_UNIT
0041a408 ffbe8008 B _system__secondary_stack__TchunkS__T37b___RM_SIZE
0041a3f8 ffbe8008 B _system__secondary_stack__TchunkS__T37b___SIZE
0041a400 ffbe8008 B _system__secondary_stack__TchunkS__T37b___SIZE_A_UNIT
0041a3f0 ffbe8008 B _system__secondary_stack__TchunkS__TT37bP1___U
00414b28 ffbec009 D _ada__exceptions__exception_data__bei_msg_headerXn
004147d6 ffbec009 D _system__file_control_block__shared_status_typeS
00414c07 ffbec009 D _system__wch_con__wc_encoding_letters
00414056 ffbec00a D ___gnat_ada_main_program_name
0040c62a ffbff00a T _ada__exceptions__code_address_for_aaa
0040c6c6 ffbff00a T _ada__exceptions__exception_identity
00414992 ffbec00a D _ada__tags__tagged_kindN
00414186 ffbec00a D _system__restrictions__rident__profile_nameN
0040b8d3 ffbff00b T ___gnat_exception_msg_len
0041c764 ffbe400c i .idata$6
0041c9cc ffbe400c i .idata$6
0041c9c0 ffbe400c i .idata$6
0041ca04 ffbe400c i .idata$6
0041c91c ffbe400c i .idata$6
0041c750 ffbe400c i .idata$6
0041c73c ffbe400c i .idata$6
0041c730 ffbe400c i .idata$6
0041c43c ffbe400c i .idata$6
0041c724 ffbe400c i .idata$6
0041c7e8 ffbe400c i .idata$6
0041c770 ffbe400c i .idata$6
0041c77c ffbe400c i .idata$6
0041c8a4 ffbe400c i .idata$6
0041c8b8 ffbe400c i .idata$6
0041c9ec ffbe400c i .idata$6
0041c9a8 ffbe400c i .idata$6
0041c7f4 ffbe400c i .idata$6
0041ca10 ffbe400c i .idata$6
0041ca1c ffbe400c i .idata$6
0041ca28 ffbe400c i .idata$6
0041c898 ffbe400c i .idata$6
0041c838 ffbe400c i .idata$6
0041c8cc ffbe400c i .idata$6
0041c7dc ffbe400c i .idata$6
0041c718 ffbe400c i .idata$6
0041ca34 ffbe400c i .idata$6
0041ca40 ffbe400c i .idata$6
0041c800 ffbe400c i .idata$6
0041c70c ffbe400c i .idata$6
0041c82c ffbe400c i .idata$6
0041c9b4 ffbe400c i .idata$6
0041c700 ffbe400c i .idata$6
0041c6c0 ffbe400c i .idata$6
0041c900 ffbe400c i .idata$6
0041c8f4 ffbe400c i .idata$6
0041c99c ffbe400c i .idata$6
0041c88c ffbe400c i .idata$6
0041c990 ffbe400c i .idata$6
0041c6cc ffbe400c i .idata$6
0041c9e0 ffbe400c i .idata$6
0041c6e8 ffbe400c i .idata$6
0041c984 ffbe400c i .idata$6
0041c4d4 ffbe400c i .idata$6
0041c978 ffbe400c i .idata$6
0041c96c ffbe400c i .idata$6
0041c940 ffbe400c i .idata$6
0041c960 ffbe400c i .idata$6
0041c8e0 ffbe400c i .idata$6
0041c880 ffbe400c i .idata$6
0041c6f4 ffbe400c i .idata$6
0041c874 ffbe400c i .idata$6
0041c9f8 ffbe400c i .idata$6
0041c954 ffbe400c i .idata$6
0041561c ffbeb00c r .rdata
00414ba4 ffbec00c D ___gnat_constant_eof
0041b114 ffbe800c B ___gnat_constant_iofbf
004165a8 ffbeb00c R ___gnat_text_translation_required
00414004 ffbec00c D __argv
0041cb3c ffbe400c I __libmoldname_a_iname
0041cc34 ffbe400c I __libmsvcrt_a_iname
0040b8b5 ffbff00c T _ada__exceptions__exception_data__exception_name_lengthXn
00414684 ffbec00c D _ada__finalization__limited_controlledF
0041a5a4 ffbe800c B _ada__streams__C278s
00414c84 ffbec00c d _initialized
0041a504 ffbe800c B _system__exception_table__exception_htable__iterator_indexXn
0041acc4 ffbe800c B _system__file_control_block__C305s
0041adb4 ffbe800c B _system__file_io__file_io_clean_up_object
00414b64 ffbec00c d _system__memory__available_memory
00414b44 ffbec00c D _system__stack_checking__null_stack_info
00414c24 ffbec00c D _system__traceback_entries__null_tb_entry
00414ada ffbec00d D _ada__exceptions__rmsg_06
004149eb ffbec00e D _system__standard_library__abort_signal_name
004149c1 ffbec00e D _system__standard_library__program_error_name
004149cf ffbec00e D _system__standard_library__storage_error_name
004149dd ffbec00e D _system__standard_library__tasking_error_name
00414abc ffbec00f D _ada__exceptions__rmsg_03
00414acb ffbec00f D _ada__exceptions__rmsg_04
00414ae7 ffbec00f D _ada__exceptions__rmsg_18
00414af6 ffbec00f D _ada__exceptions__rmsg_22
00414b05 ffbec00f D _ada__exceptions__rmsg_29
004149f9 ffbec00f D _system__standard_library__numeric_error_name
00414aa1 ffbec00f D _system__standard_library__runtime_finalized
00414b81 ffbec00f D _system__stream_attributes__block_stream_ops_ok
00414c90 ffbec010 d .data
0041c458 ffbe4010 i .idata$6
0041c448 ffbe4010 i .idata$6
0041c42c ffbe4010 i .idata$6
0041c4a8 ffbe4010 i .idata$6
0041c788 ffbe4010 i .idata$6
0041c7b8 ffbe4010 i .idata$6
0041c80c ffbe4010 i .idata$6
0041c81c ffbe4010 i .idata$6
0041c564 ffbe4010 i .idata$6
0041c59c ffbe4010 i .idata$6
0041c798 ffbe4010 i .idata$6
0041c7a8 ffbe4010 i .idata$6
0041c654 ffbe4010 i .idata$6
0041c618 ffbe4010 i .idata$6
0041c4fc ffbe4010 i .idata$6
0041c5bc ffbe4010 i .idata$6
0041c41c ffbe4010 i .idata$6
0041c5ac ffbe4010 i .idata$6
004168f0 ffbeb010 r .rdata
0041569c ffbeb010 r .rdata
004127f0 ffbff010 t .text
00413210 ffbff010 t ___dereg_frame_dtor
00411510 ffbff010 T ___deregister_frame_info
00412cf0 ffbff010 T ___getmainargs
00401600 ffbff010 T ___gnat_adjust_context_for_raise
0040f820 ffbff010 T ___gnat_adjust_os_resource_limits
0040af90 ffbff010 T ___gnat_arg_count
0040f8d0 ffbff010 T ___gnat_binder_supports_auto_init
0040e180 ffbff010 T ___gnat_constant_stderr
0040e190 ffbff010 T ___gnat_constant_stdin
0040e1a0 ffbff010 T ___gnat_constant_stdout
0040f130 ffbff010 T ___gnat_dup
0040f140 ffbff010 T ___gnat_dup2
0040e110 ffbff010 T ___gnat_feof
0040e120 ffbff010 T ___gnat_ferror
0040e130 ffbff010 T ___gnat_fileno
0040b0a0 ffbff010 T ___gnat_finalize
0040e640 ffbff010 T ___gnat_get_default_identifier_character_set
0040e630 ffbff010 T ___gnat_get_file_names_case_sensitive
0040e620 ffbff010 T ___gnat_get_maximum_file_name_length
004015f0 ffbff010 T ___gnat_init_float
004015e0 ffbff010 T ___gnat_install_handler
0040f0b0 ffbff010 T ___gnat_is_symbolic_link
0040f8a0 ffbff010 T ___gnat_lseek
0040f450 ffbff010 T ___gnat_os_exit
0040e9f0 ffbff010 T ___gnat_readdir_is_thread_safe
0040e5a0 ffbff010 T ___gnat_readlink
0040f8e0 ffbff010 T ___gnat_sals_init_using_constructors
0040f8c0 ffbff010 T ___gnat_set_close_on_exec
0040b090 ffbff010 T ___gnat_set_exit_status
0040e5b0 ffbff010 T ___gnat_symlink
0040f7d0 ffbff010 T ___gnat_to_canonical_dir_spec
0040f7c0 ffbff010 T ___gnat_to_canonical_file_list_free
0040f7a0 ffbff010 T ___gnat_to_canonical_file_list_init
0040f7b0 ffbff010 T ___gnat_to_canonical_file_list_next
0040f7e0 ffbff010 T ___gnat_to_canonical_file_spec
0040f7f0 ffbff010 T ___gnat_to_canonical_path_spec
0040f800 ffbff010 T ___gnat_to_host_dir_spec
0040f810 ffbff010 T ___gnat_to_host_file_spec
00410ba0 ffbff010 T ___gnat_unhandled_terminate
00412ca0 ffbff010 T ___p__environ
00412cc0 ffbff010 T ___p__fmode
00413200 ffbff010 t ___reg_frame_ctor
00412c80 ffbff010 T ___set_app_type
0041b1b0 ffbe8010 B ___w32_sharedptr
00412300 ffbff010 t ___w32_sharedptr_default_unexpected
0041b1a0 ffbe8010 B ___w32_sharedptr_terminate
00412fa0 ffbff010 T __assert
00412c90 ffbff010 T __cexit
00414c60 ffbec010 D __CRT_fmode
00414c50 ffbec010 D __CRT_glob
00414cb0 ffbec010 D __CRT_MT
00412ee0 ffbff010 T __errno
00412cd0 ffbff010 T __fileno
00412fb0 ffbff010 T __findclose
00412fd0 ffbff010 T __findfirst
00412fc0 ffbff010 T __findnext
00414c70 ffbec010 D __fmode
00412e70 ffbff010 T __fullpath
00412ef0 ffbff010 T __get_osfhandle
00412f40 ffbff010 T __global_unwind2
00410b90 ffbff010 T __gnat_builtin_longjmp
00412f30 ffbff010 T __isctype
0041ca54 ffbe4010 I __libadvapi32_a_iname
0041cae4 ffbe4010 I __libkernel32_a_iname
00412e50 ffbff010 T __msize
00412ce0 ffbff010 T __setmode
00412f90 ffbff010 T _abort
0040c6a6 ffbff010 T _ada__exceptions__eid_to_string
0040c6b6 ffbff010 T _ada__exceptions__eo_to_string
00414b18 ffbec010 D _ada__exceptions__exception_data__bei_name_headerXn
00414c30 ffbec010 D _ada__exceptions__last_chance_handler_E
00404650 ffbff010 T _ada__finalization___alignment__3
00404890 ffbff010 T _ada__finalization___alignment__4
00404660 ffbff010 T _ada__finalization___size__3
004048a0 ffbff010 T _ada__finalization___size__4
00404ca0 ffbff010 T _ada__finalization__adjust
0041aa60 ffbe8010 B _ada__finalization__C752s
00404670 ffbff010 T _ada__finalization__controlledSR__2
00404680 ffbff010 T _ada__finalization__controlledSW__2
00404cb0 ffbff010 T _ada__finalization__finalize
00404cc0 ffbff010 T _ada__finalization__finalize__2
00404cd0 ffbff010 T _ada__finalization__initialize
00404ce0 ffbff010 T _ada__finalization__initialize__2
004048b0 ffbff010 T _ada__finalization__limited_controlledSR__2
004048c0 ffbff010 T _ada__finalization__limited_controlledSW__2
00404d20 ffbff010 T _ada__finalization__list_controller___alignment
00404db0 ffbff010 T _ada__finalization__list_controller___alignment__2
00404d30 ffbff010 T _ada__finalization__list_controller___size
00404dc0 ffbff010 T _ada__finalization__list_controller___size__2
00404c90 ffbff010 T _ada__finalization__Oeq__2
004029b0 ffbff010 T _ada__streams___alignment
004029c0 ffbff010 T _ada__streams___size
00414420 ffbec010 D _ada__streams__C279s
004029d0 ffbff010 T _ada__streams__root_stream_typeDF
00402b00 ffbff010 T _ada__streams__stream_element_arrayIP
0040ae80 ffbff010 T _ada__tags__address_arrayIP
0040ae90 ffbff010 T _ada__tags__dispatch_tableIP
0040a9e0 ffbff010 T _ada__tags__get_prim_op_address
0040ade0 ffbff010 T _ada__tags__get_tagged_kind
0040aea0 ffbff010 T _ada__tags__interface_data_elementIP
0040aec0 ffbff010 T _ada__tags__interface_dataIP
0040aeb0 ffbff010 T _ada__tags__interfaces_arrayIP
0040af40 ffbff010 T _ada__tags__is_primary_dt
0040aed0 ffbff010 T _ada__tags__object_specific_data_arrayIP
0040aee0 ffbff010 T _ada__tags__object_specific_dataIP
0040adf0 ffbff010 T _ada__tags__osd
0040ab40 ffbff010 T _ada__tags__register_tag
0040af00 ffbff010 T _ada__tags__select_specific_data_arrayIP
0040aef0 ffbff010 T _ada__tags__select_specific_data_elementIP
0040af10 ffbff010 T _ada__tags__select_specific_dataIP
0040acf0 ffbff010 T _ada__tags__set_osd
0040ae40 ffbff010 T _ada__tags__set_tagged_kind
0040ada0 ffbff010 T _ada__tags__set_tsd
0040ae70 ffbff010 T _ada__tags__tsd
0040adb0 ffbff010 T _ada__tags__Tsignature_valuesBIP
0040a730 ffbff010 T _ada__tags__typeinfo_ptr
004074b0 ffbff010 T _ada__text_io___alignment__2
004074c0 ffbff010 T _ada__text_io___size__2
004079c0 ffbff010 T _ada__text_io__current_error
004079d0 ffbff010 T _ada__text_io__current_error__2
004079e0 ffbff010 T _ada__text_io__current_input
004079f0 ffbff010 T _ada__text_io__current_input__2
00407a00 ffbff010 T _ada__text_io__current_output
00407a10 ffbff010 T _ada__text_io__current_output__2
00407cd0 ffbff010 T _ada__text_io__eof_char
00414900 ffbec010 d _ada__text_io__err_name
00407ce0 ffbff010 T _ada__text_io__flush
00414910 ffbec010 d _ada__text_io__in_name
004086d0 ffbff010 T _ada__text_io__is_open
00414920 ffbec010 d _ada__text_io__out_name
00409a60 ffbff010 T _ada__text_io__standard_error
00409a70 ffbff010 T _ada__text_io__standard_error__2
00409a80 ffbff010 T _ada__text_io__standard_input
00409a90 ffbff010 T _ada__text_io__standard_input__2
00409aa0 ffbff010 T _ada__text_io__standard_output
00409ab0 ffbff010 T _ada__text_io__standard_output__2
004131c0 ffbff010 T _AddAtomA@4
00412e30 ffbff010 T _atoi
00412780 ffbff010 T _chmod
00412d60 ffbff010 T _clearerr
004127d0 ffbff010 T _close
00413080 ffbff010 T _CloseHandle@4
00413070 ffbff010 T _CreateFileA@28
004130f0 ffbff010 T _CreateProcessA@40
00413140 ffbff010 T _CreateSemaphoreA@16
00412760 ffbff010 T _dup
00412750 ffbff010 T _dup2
004130b0 ffbff010 T _EnterCriticalSection@4
00412ed0 ffbff010 T _exit
00412ff0 ffbff010 T _ExitProcess@4
00413120 ffbff010 T _ExpandEnvironmentStringsA@12
00412d90 ffbff010 T _fclose
00412ea0 ffbff010 T _feof
00412e90 ffbff010 T _ferror
00412d50 ffbff010 T _fflush
00412d70 ffbff010 T _fgetc
004126f0 ffbff010 T _fileno
004131b0 ffbff010 T _FindAtomA@4
00413020 ffbff010 T _FlushConsoleInputBuffer@4
00412d40 ffbff010 T _fopen
00410d20 ffbff010 t _forced_callee
00410e50 ffbff010 T _fpreset
00412f60 ffbff010 T _fprintf
00412de0 ffbff010 T _fputc
00412dc0 ffbff010 T _fread
00412e20 ffbff010 T _free
00412d20 ffbff010 T _freopen
00412da0 ffbff010 T _fseek
004126e0 ffbff010 T _fstat
00412db0 ffbff010 T _fwrite
00410910 ffbff010 T _get_char
0040f8b0 ffbff010 T _get_gcc_version
004131a0 ffbff010 T _GetAtomNameA@12
00412710 ffbff010 T _getch
00412f80 ffbff010 T _getchar
00413050 ffbff010 T _GetCommandLineA@0
004130d0 ffbff010 T _GetCurrentProcess@0
004127c0 ffbff010 T _getcwd
00412e40 ffbff010 T _getenv
00413110 ffbff010 T _GetExitCodeProcess@8
004131d0 ffbff010 T _GetFileAttributesA@4
00413060 ffbff010 T _GetFileTime@16
00413040 ffbff010 T _GetModuleHandleA@4
004130e0 ffbff010 T _GetPriorityClass@4
00413010 ffbff010 T _GetStdHandle@4
00413000 ffbff010 T _GetVersion@0
00413030 ffbff010 T _GetVersionExA@4
00412f20 ffbff010 T _gmtime
0041b100 ffbe8010 B _gnat_exit_status
004130a0 ffbff010 T _InitializeCriticalSection@4
00413170 ffbff010 T _InterlockedDecrement@4
00413150 ffbff010 T _InterlockedIncrement@4
00412720 ffbff010 T _isatty
00413130 ffbff010 T _IsBadCodePtr@4
00412700 ffbff010 T _kbhit
004130c0 ffbff010 T _LeaveCriticalSection@4
00412730 ffbff010 T _lseek
00412e60 ffbff010 T _malloc
00412d10 ffbff010 T _memcmp
00412d00 ffbff010 T _memcpy
00412eb0 ffbff010 T _memset
004127b0 ffbff010 T _mktemp
004127e0 ffbff010 T _open
0041b148 ffbe8010 b _PLIST
0041b158 ffbe8010 b _plist_length
00410980 ffbff010 T _put_char
00412f50 ffbff010 T _putchar
00412e10 ffbff010 T _realloc
004131f0 ffbff010 T _RegEnumValueA@32
004131e0 ffbff010 T _RegOpenKeyExA@20
00413180 ffbff010 T _ReleaseSemaphore@12
00412d30 ffbff010 T _rewind
0040e4c0 ffbff010 T _rts_get_hInstance
0040e4d0 ffbff010 T _rts_get_hPrevInstance
0040e4e0 ffbff010 T _rts_get_lpCommandLine
0040e4f0 ffbff010 T _rts_get_nShowCmd
00412f70 ffbff010 T _scanf
00413090 ffbff010 T _SetFileTime@16
00412fe0 ffbff010 T _SetUnhandledExceptionFilter@4
00412dd0 ffbff010 T _setvbuf
00412cb0 ffbff010 T _signal
00413160 ffbff010 T _Sleep@4
00412770 ffbff010 T _spawnvp
00412f10 ffbff010 T _sprintf
00412790 ffbff010 T _stat
00412f00 ffbff010 T _strcat
00412e80 ffbff010 T _strcpy
00412e00 ffbff010 T _strlen
00412df0 ffbff010 T _strncpy
00412ec0 ffbff010 T _strstr
004025a0 ffbff010 T _system__exception_table__get_ht_link
004025b0 ffbff010 T _system__exception_table__get_key
004028c0 ffbff010 T _system__exception_table__register_exception
00402820 ffbff010 T _system__exception_table__set_ht_link
00405190 ffbff010 T _system__file_control_block___alignment
004051a0 ffbff010 T _system__file_control_block___size
00414810 ffbec010 D _system__file_control_block__C306s
004053d0 ffbff010 T _system__file_io___alignment__2
004053e0 ffbff010 T _system__file_io___size__2
00414890 ffbec010 D _system__file_io__C409b
00414830 ffbec010 D _system__file_io__file_io_clean_up_typeF
004055b0 ffbff010 T _system__file_io__file_io_clean_up_typeSO__2
004053f0 ffbff010 T _system__file_io__file_io_clean_up_typeSR__2
00405400 ffbff010 T _system__file_io__file_io_clean_up_typeSW__2
00406280 ffbff010 T _system__file_io__is_open
004055c0 ffbff010 T _system__file_io__Oeq
0041ade0 ffbe8010 B _system__file_io__temp_file_record__next___OFFSET
004031a0 ffbff010 T _system__finalization_implementation___alignment
004033b0 ffbff010 T _system__finalization_implementation___alignment__2
004045b0 ffbff010 T _system__finalization_implementation___elabb
004031b0 ffbff010 T _system__finalization_implementation___size
004033c0 ffbff010 T _system__finalization_implementation___size__2
00403fe0 ffbff010 T _system__finalization_implementation__finalize
00404310 ffbff010 T _system__finalization_implementation__initialize
00404320 ffbff010 T _system__finalization_implementation__initialize__2
00403280 ffbff010 T _system__finalization_implementation__limited_record_controllerSO
00403490 ffbff010 T _system__finalization_implementation__record_controllerSO
00402b10 ffbff010 T _system__finalization_root___alignment
00402c00 ffbff010 T _system__finalization_root___alignment__2
00402b20 ffbff010 T _system__finalization_root___size
00402c10 ffbff010 T _system__finalization_root___size__2
00402b30 ffbff010 T _system__finalization_root__empty_root_controlledSR
00402b40 ffbff010 T _system__finalization_root__empty_root_controlledSW
00402b50 ffbff010 T _system__finalization_root__Oeq
00403130 ffbff010 T _system__finalization_root__read
00402c70 ffbff010 T _system__finalization_root__root_controlledSO
00403140 ffbff010 T _system__finalization_root__write
00401a80 ffbff010 T _system__restrictions__rident__profile_dataIP
00401a90 ffbff010 T _system__restrictions__rident__Tparameter_flagsBIP
00401a60 ffbff010 T _system__restrictions__rident__Trestriction_flagsBIP
00401a70 ffbff010 T _system__restrictions__rident__Trestriction_valuesBIP
0041a448 ffbe8010 b _system__secondary_stack__chunk
00402350 ffbff010 T _system__secondary_stack__fixed_stack_idIP
00402300 ffbff010 T _system__secondary_stack__mark_idIP
00402310 ffbff010 T _system__secondary_stack__memoryIP
0041a438 ffbe8010 b _system__secondary_stack__R36b
00402060 ffbff010 T _system__secondary_stack__ss_get_max
00402110 ffbff010 T _system__secondary_stack__ss_release
0041a428 ffbe8010 b _system__secondary_stack__stack
00402360 ffbff010 T _system__secondary_stack__stack_idIP
00401b40 ffbff010 T _system__soft_links__abort_defer_nt
00401b50 ffbff010 T _system__soft_links__abort_handler_nt
00401b60 ffbff010 T _system__soft_links__abort_undefer_nt
00401b90 ffbff010 T _system__soft_links__check_abort_status_nt
00401ba0 ffbff010 T _system__soft_links__complete_master_nt
00401bb0 ffbff010 T _system__soft_links__current_master_nt
00401bc0 ffbff010 T _system__soft_links__enter_master_nt
00401bd0 ffbff010 T _system__soft_links__get_current_excep_nt
00401be0 ffbff010 T _system__soft_links__get_exc_stack_addr_nt
00401bf0 ffbff010 T _system__soft_links__get_exc_stack_addr_soft
00401c00 ffbff010 T _system__soft_links__get_jmpbuf_address_nt
00401d60 ffbff010 T _system__soft_links__get_jmpbuf_address_soft
00401c10 ffbff010 T _system__soft_links__get_sec_stack_addr_nt
00401d80 ffbff010 T _system__soft_links__get_sec_stack_addr_soft
00401c20 ffbff010 T _system__soft_links__get_stack_info_nt
00401c30 ffbff010 T _system__soft_links__null_finalize_global_list
00401c40 ffbff010 T _system__soft_links__set_jmpbuf_address_nt
00401d70 ffbff010 T _system__soft_links__set_jmpbuf_address_soft
00401c50 ffbff010 T _system__soft_links__set_sec_stack_addr_nt
00401d90 ffbff010 T _system__soft_links__set_sec_stack_addr_soft
00401c60 ffbff010 T _system__soft_links__task_lock_nt
00401c80 ffbff010 T _system__soft_links__task_termination_nt
00401c70 ffbff010 T _system__soft_links__task_unlock_nt
00401e20 ffbff010 T _system__soft_links__Tnt_exc_stackBIP
00414b50 ffbec010 D _system__stack_checking__null_stack
0040b110 ffbff010 T _system__standard_library__abort_undefer_direct
0040b130 ffbff010 T _system__standard_library__image_index_table_16IP
0040b140 ffbff010 T _system__standard_library__image_index_table_32IP
0040b120 ffbff010 T _system__standard_library__image_index_table_8IP
0040e010 ffbff010 T _system__stream_attributes__fat_pointerIP
0040e000 ffbff010 T _system__stream_attributes__thin_pointerIP
00414b70 ffbec010 D _system__string_ops_concat_3_E
00414be0 ffbec010 D _system__string_ops_E
00414c10 ffbec010 D _system__traceback_E
00410a10 ffbff010 T _system__traceback_entries__pc_for
00410a20 ffbff010 T _system__traceback_entries__tb_entry_for
00414c40 ffbec010 D _system__wch_jis_E
00414bf0 ffbec010 D _system__wch_stw_E
004127a0 ffbff010 T _tempnam
00412d80 ffbff010 T _ungetc
004126d0 ffbff010 T _unlink
00412740 ffbff010 T _utime
00413100 ffbff010 T _WaitForMultipleObjects@16
00413190 ffbff010 T _WaitForSingleObject@8
00414bb0 ffbec010 d _winflush_function
0040e2f0 ffbff010 t _winflush_nt
00418040 ffbe8010 b already_called.0
0041b190 ffbe8010 b dw2_object_mutex.0
00414ca0 ffbec010 d dw2_once.1
0041b120 ffbe8010 b is_win_xp.0
0041b130 ffbe8010 b is_win_xp_checked.1
004160c8 ffbeb011 R _ada__exceptions__rmsg_13
0041628a ffbeb011 R _ada__exceptions__rmsg_31
0040c059 ffbff012 T ___gnat_unhandled_exception
0040b8c1 ffbff012 T _ada__exceptions__exception_data__exception_name_length__2Xn
0040c83b ffbff012 T _ada__exceptions__exception_name__2
0041605a ffbeb012 R _ada__exceptions__rmsg_08
0041610e ffbeb012 R _ada__exceptions__rmsg_16
00416033 ffbeb013 R _ada__exceptions__rmsg_05
004160b5 ffbeb013 R _ada__exceptions__rmsg_12
00416264 ffbeb013 R _ada__exceptions__rmsg_28
00416277 ffbeb013 R _ada__exceptions__rmsg_30
0040d05e ffbff013 T _ada__exceptions__save_occurrence
00414931 ffbec013 D _ada__tags__tag_errorE
004125ad ffbff013 t done
0041c844 ffbe4014 i .idata$6
0041c640 ffbe4014 i .idata$6
0041c588 ffbe4014 i .idata$6
0041c574 ffbe4014 i .idata$6
0041c520 ffbe4014 i .idata$6
0041c47c ffbe4014 i .idata$6
0041c468 ffbe4014 i .idata$6
0041c858 ffbe4014 i .idata$6
0041c50c ffbe4014 i .idata$6
0041c7c8 ffbe4014 i .idata$6
00416654 ffbeb014 r .rdata
00415060 ffbeb014 r .rdata
0041c000 ffbe4014 I __head_libadvapi32_a
0041c014 ffbe4014 I __head_libkernel32_a
0041c028 ffbe4014 I __head_libmoldname_a
0040c919 ffbff014 T _ada__exceptions__process_raise_exception
00415fec ffbeb014 R _ada__exceptions__rmsg_00
00416046 ffbeb014 R _ada__exceptions__rmsg_07
0041475c ffbec014 D _ada__finalization__list_controller__list_controllerF
0041451c ffbec014 D _system__finalization_implementation__limited_record_controllerF
0041459c ffbec014 D _system__finalization_implementation__record_controllerF
0041449c ffbec014 D _system__finalization_root__root_controlledF
0040d33b ffbff015 T _ada__exceptions__code_address_for_zzz
0040b6c8 ffbff015 T _ada__exceptions__exception_data__basic_exception_tback_maxlengthXn
0040d205 ffbff016 T ___gnat_to_stderr_char
0040be36 ffbff016 t _ada__exceptions__exception_traces__notify_exception___cleanXn.0
00416088 ffbeb016 R _ada__exceptions__rmsg_10
00415c6e ffbeb016 R _ada__tags__prim_op_kindN
0041609e ffbeb017 R _ada__exceptions__rmsg_11
004148bd ffbec017 D _ada__text_io__text_afcbE
00412596 ffbff017 t probe
0041c490 ffbe4018 i .idata$6
0041c534 ffbe4018 i .idata$6
0041c54c ffbe4018 i .idata$6
0041c5e8 ffbe4018 i .idata$6
0041c600 ffbe4018 i .idata$6
0041c628 ffbe4018 i .idata$6
0041c6a8 ffbe4018 i .idata$6
00414a80 ffbec018 D __abort_signal
0041abd8 ffbe8018 B _ada__finalization__list_controller__C633s
004146f8 ffbec018 D _ada__finalization__list_controller__simple_list_controllerF
00414398 ffbec018 D _ada__io_exceptions__data_error
00414324 ffbec018 D _ada__io_exceptions__device_error
0041435c ffbec018 D _ada__io_exceptions__end_error
00414274 ffbec018 D _ada__io_exceptions__mode_error
004142b0 ffbec018 D _ada__io_exceptions__name_error
00414238 ffbec018 D _ada__io_exceptions__status_error
004142e8 ffbec018 D _ada__io_exceptions__use_error
00414948 ffbec018 D _ada__tags__tag_error
00414a08 ffbec018 D _constraint_error
00414a20 ffbec018 D _numeric_error
00414a38 ffbec018 D _program_error
00414a50 ffbec018 D _storage_error
00414438 ffbec018 D _system__finalization_root__empty_root_controlledF
0041a458 ffbe8018 b _system__secondary_stack__chunk_address
00414a68 ffbec018 D _tasking_error
00416000 ffbeb019 R _ada__exceptions__rmsg_01
00416187 ffbeb019 R _ada__exceptions__rmsg_21
0041629b ffbeb019 R _ada__exceptions__rmsg_32
00416019 ffbeb01a R _ada__exceptions__rmsg_02
004160d9 ffbeb01a R _ada__exceptions__rmsg_14
004161db ffbeb01a R _ada__exceptions__rmsg_25
00415938 ffbeb01a R _ada__text_io__file_modeS
0040b327 ffbff01b T _ada__exceptions__exception_data__append_info_nlXn
004160f3 ffbeb01b R _ada__exceptions__rmsg_15
0041c4b8 ffbe401c i .idata$6
0041c5cc ffbe401c i .idata$6
0041c4e0 ffbe401c i .idata$6
0041c68c ffbe401c i .idata$6
0041562c ffbeb01c r .rdata
0040c06b ffbff01c T _ada__exceptions__exception_traces__unhandled_exception_terminateXn
0041606c ffbeb01c R _ada__exceptions__rmsg_09
004161a0 ffbeb01c R _ada__exceptions__rmsg_23
0041ab14 ffbe801c B _ada__finalization__list_controller__C309s
004147b4 ffbec01c D _ada__finalization__list_controller__C634s
0041433c ffbec01c D _ada__io_exceptions__end_errorE
004143d4 ffbec01c D _ada__io_exceptions__layout_error
004142c8 ffbec01c D _ada__io_exceptions__use_errorE
0041afb4 ffbe801c B _ada__text_io__C352s
00415600 ffbeb01c R _system__restrictions__rident__profile_nameS
0040d167 ffbff01d T ___gnat_transfer_occurrence
00401482 ffbff01e T __ada_bla
0040b897 ffbff01e T _ada__exceptions__exception_data__append_info_exception_name__2Xn
0040d1e7 ffbff01e T _ada__exceptions__raise_exception_no_defer
00416168 ffbeb01f R _ada__exceptions__rmsg_20
004161bc ffbeb01f R _ada__exceptions__rmsg_24
0040c148 ffbff01f t _ada__exceptions__stream_attributes__string_to_eo__bad_eo.1
00414639 ffbec01f D _ada__finalization__controlledE
004143f9 ffbec01f D _ada__streams__root_stream_typeE
0041c664 ffbe4020 i .idata$6
00401290 ffbff020 T ___do_frame_fini
00401270 ffbff020 T ___do_frame_init
0040b0d0 ffbff020 T ___gnat_break_start
0040ea90 ffbff020 T ___gnat_file_time_fd
004014a0 ffbff020 T ___gnat_get_interrupt_state
0040afa0 ffbff020 T ___gnat_len_arg
0040b030 ffbff020 T ___gnat_len_env
0040f150 ffbff020 T ___gnat_plist_init
0040e220 ffbff020 T ___gnat_set_binary_mode
0040e240 ffbff020 T ___gnat_set_text_mode
00410ef0 ffbff020 T ___main
00411240 ffbff020 T ___register_frame_info
00411370 ffbff020 T ___register_frame_info_table
00411390 ffbff020 T ___register_frame_table
00401250 ffbff020 T __onexit
00410e30 ffbff020 T __pei386_runtime_relocator
004146d0 ffbec020 D _ada__finalization__C753s
00404840 ffbff020 T _ada__finalization__controlledDF
004048d0 ffbff020 T _ada__finalization__limited_controlledDF
00405150 ffbff020 T _ada__finalization__list_controller__finalize
00405170 ffbff020 T _ada__finalization__list_controller__initialize__2
00404dd0 ffbff020 T _ada__finalization__list_controller__list_controllerDF
00404d40 ffbff020 T _ada__finalization__list_controller__simple_list_controllerDF
00414374 ffbec020 D _ada__io_exceptions__data_errorE
00414300 ffbec020 D _ada__io_exceptions__device_errorE
004143b0 ffbec020 D _ada__io_exceptions__layout_errorE
00414250 ffbec020 D _ada__io_exceptions__mode_errorE
0041428c ffbec020 D _ada__io_exceptions__name_errorE
00414214 ffbec020 D _ada__io_exceptions__status_errorE
00402ae0 ffbff020 T _ada__streams__root_stream_typeIP
00409ee0 ffbff020 T _ada__tags___elabs
0040a060 ffbff020 T _ada__tags__external_tag_htable__get_firstXn
0041b0d0 ffbe8020 B _ada__tags__external_tag_htable__iterator_indexXn
0040a1a0 ffbff020 T _ada__tags__external_tag_htable__resetXn
0040a960 ffbff020 T _ada__tags__get_access_level
0040a980 ffbff020 T _ada__tags__get_entry_index
0040a440 ffbff020 T _ada__tags__get_external_tag
0040a9a0 ffbff020 T _ada__tags__get_offset_index
0040a9c0 ffbff020 T _ada__tags__get_predefined_prim_op_address
0040adc0 ffbff020 T _ada__tags__get_prim_op_kind
0040a9f0 ffbff020 T _ada__tags__get_rc_offset
0040aa10 ffbff020 T _ada__tags__get_remotely_callable
00409f30 ffbff020 T _ada__tags__htable_subprograms__get_ht_linkXn
00409fe0 ffbff020 T _ada__tags__htable_subprograms__set_ht_linkXn
0040a680 ffbff020 T _ada__tags__length
0040a6a0 ffbff020 T _ada__tags__offset_to_top
0040a6c0 ffbff020 T _ada__tags__parent_size
0040ab50 ffbff020 T _ada__tags__set_access_level
0040ab70 ffbff020 T _ada__tags__set_entry_index
0040ab90 ffbff020 T _ada__tags__set_expanded_name
0040abb0 ffbff020 T _ada__tags__set_external_tag
0040abd0 ffbff020 T _ada__tags__set_interface_table
0040ac30 ffbff020 T _ada__tags__set_offset_index
0040ad00 ffbff020 T _ada__tags__set_predefined_prim_op_address
0040ad20 ffbff020 T _ada__tags__set_prim_op_address
0040ae00 ffbff020 T _ada__tags__set_prim_op_kind
0040ad40 ffbff020 T _ada__tags__set_rc_offset
0040ad60 ffbff020 T _ada__tags__set_remotely_callable
0040ae20 ffbff020 T _ada__tags__set_signature
0040ad80 ffbff020 T _ada__tags__set_ssd
0040ae50 ffbff020 T _ada__tags__ssd
0040af20 ffbff020 T _ada__tags__type_specific_dataIP
004078b0 ffbff020 T _ada__text_io__afcb_free__2
004078d0 ffbff020 T _ada__text_io__close
004078f0 ffbff020 T _ada__text_io__col
00407910 ffbff020 T _ada__text_io__col__2
00407a20 ffbff020 T _ada__text_io__delete
00407b20 ffbff020 T _ada__text_io__end_of_file__2
00407bd0 ffbff020 T _ada__text_io__end_of_line__2
00407cb0 ffbff020 T _ada__text_io__end_of_page__2
00407cf0 ffbff020 T _ada__text_io__flush__2
00407d10 ffbff020 T _ada__text_io__form
00407e40 ffbff020 T _ada__text_io__get__2
00407f70 ffbff020 T _ada__text_io__get__4
00408050 ffbff020 T _ada__text_io__get_immediate__2
00408150 ffbff020 T _ada__text_io__get_immediate__4
00408330 ffbff020 T _ada__text_io__get_line__2
00408650 ffbff020 T _ada__text_io__get_line__4
004086e0 ffbff020 T _ada__text_io__line
00408700 ffbff020 T _ada__text_io__line__2
00408770 ffbff020 T _ada__text_io__line_length__2
00408830 ffbff020 T _ada__text_io__look_ahead__2
00408880 ffbff020 T _ada__text_io__name
00408980 ffbff020 T _ada__text_io__new_line__2
00408a50 ffbff020 T _ada__text_io__new_page__2
00408b80 ffbff020 T _ada__text_io__page
00408ba0 ffbff020 T _ada__text_io__page__2
00408c10 ffbff020 T _ada__text_io__page_length__2
00408e90 ffbff020 T _ada__text_io__put__4
00409090 ffbff020 T _ada__text_io__put_line__2
004094c0 ffbff020 T _ada__text_io__set_col__2
00409650 ffbff020 T _ada__text_io__set_line__2
004096d0 ffbff020 T _ada__text_io__set_line_length__2
004097a0 ffbff020 T _ada__text_io__set_page_length__2
00409930 ffbff020 T _ada__text_io__skip_line__2
00409a40 ffbff020 T _ada__text_io__skip_page__2
00414010 ffbec020 D _ada_main_E
00401230 ffbff020 T _atexit
00411630 ffbff020 t _fde_unencoded_compare
00410920 ffbff020 T _get_int
0040e4a0 ffbff020 T _getc_immediate
0040e480 ffbff020 T _getc_immediate_nowait
004011f0 ffbff020 T _mainCRTStartup
00418000 ffbe8020 b _obj
0040f170 ffbff020 t _plist_enter
0040f190 ffbff020 t _plist_leave
00410990 ffbff020 T _put_char_stderr
00410940 ffbff020 T _put_int
00410960 ffbff020 T _put_int_stderr
004023d0 ffbff020 T _system__exception_table__exception_htable__get_firstXn
00402510 ffbff020 T _system__exception_table__exception_htable__resetXn
004147ec ffbec020 D _system__file_control_block__afcbE
00405790 ffbff020 T _system__file_io__file_io_clean_up_typeDF__2
0041acd0 ffbe8020 B _system__file_io__R1b
00407440 ffbff020 T _system__file_io__temp_file_recordIP
004039a0 ffbff020 t _system__finalization_implementation__adjust__ptr_adjust__2.0
0041a8d0 ffbe8020 B _system__finalization_implementation__C824s
00414610 ffbec020 D _system__finalization_implementation__C825s
00403ff0 ffbff020 T _system__finalization_implementation__finalize_global_list
00404330 ffbff020 t _system__finalization_implementation__raise_from_finalize___clean.3
004030d0 ffbff020 T _system__finalization_root__adjust
0041a650 ffbe8020 B _system__finalization_root__C319s
0041a730 ffbe8020 B _system__finalization_root__C758s
00403150 ffbff020 T _system__finalization_root__empty_root_controlledIP
004030f0 ffbff020 T _system__finalization_root__finalize
00403110 ffbff020 T _system__finalization_root__initialize
00402db0 ffbff020 T _system__finalization_root__root_controlledSR
00402d90 ffbff020 T _system__finalization_root__root_controlledSW
00401b00 ffbff020 T _system__restrictions__abort_allowed
00401920 ffbff020 t _system__restrictions__acquire_restrictions__get_char.0
00401b20 ffbff020 T _system__restrictions__tasking_allowed
0041a3d0 ffbe8020 B _system__secondary_stack__dummy_fixed_stack
004020f0 ffbff020 T _system__secondary_stack__ss_mark
0041a3b0 ffbe8020 B _system__secondary_stack__ss_pool
00401b70 ffbff020 T _system__soft_links__adafinal_nt
00401e00 ffbff020 T _system__soft_links__destroy_tsd
00401d40 ffbff020 T _system__soft_links__get_gnat_exception
00401c90 ffbff020 T _system__soft_links__update_exception_nt
0040d350 ffbff020 T _system__stack_checking__stack_infoIP
0040b0b0 ffbff020 T _system__standard_library__adafinal
00415de4 ffbeb020 R _system__standard_library__constraint_error_name
0040b0f0 ffbff020 T _system__standard_library__exception_dataIP
0040e2d0 ffbff020 t _winflush_95
00401210 ffbff020 T _WinMainCRTStartup
0040c972 ffbff021 T ___gnat_raise_nodefer_with_msg
0040c92d ffbff022 T ___gnat_raise_constraint_error
0040ca0f ffbff022 T ___gnat_raise_program_error
0040ca54 ffbff022 T ___gnat_raise_storage_error
00401460 ffbff022 t _bla__write_something.0
0040c683 ffbff023 T ___gnat_current_target_exception
0040c94f ffbff023 T ___gnat_raise_constraint_error_msg
0040ca31 ffbff023 T ___gnat_raise_program_error_msg
0040ca76 ffbff023 T ___gnat_raise_storage_error_msg
0040cb0f ffbff023 T ___gnat_rcheck_00
0040cb32 ffbff023 T ___gnat_rcheck_01
0040cb55 ffbff023 T ___gnat_rcheck_02
0040cb78 ffbff023 T ___gnat_rcheck_03
0040cb9b ffbff023 T ___gnat_rcheck_04
0040cbbe ffbff023 T ___gnat_rcheck_05
0040cbe1 ffbff023 T ___gnat_rcheck_06
0040cc04 ffbff023 T ___gnat_rcheck_07
0040cc27 ffbff023 T ___gnat_rcheck_08
0040cc4a ffbff023 T ___gnat_rcheck_09
0040cc6d ffbff023 T ___gnat_rcheck_10
0040cc90 ffbff023 T ___gnat_rcheck_11
0040ccb3 ffbff023 T ___gnat_rcheck_12
0040ccd6 ffbff023 T ___gnat_rcheck_13
0040ccf9 ffbff023 T ___gnat_rcheck_14
0040cd1c ffbff023 T ___gnat_rcheck_15
0040cd3f ffbff023 T ___gnat_rcheck_16
0040cd62 ffbff023 T ___gnat_rcheck_17
0040cd85 ffbff023 T ___gnat_rcheck_18
0040cda8 ffbff023 T ___gnat_rcheck_19
0040cdcb ffbff023 T ___gnat_rcheck_20
0040cdee ffbff023 T ___gnat_rcheck_21
0040ce11 ffbff023 T ___gnat_rcheck_22
0040ce34 ffbff023 T ___gnat_rcheck_23
0040ce57 ffbff023 T ___gnat_rcheck_24
0040ce7a ffbff023 T ___gnat_rcheck_25
0040ce9d ffbff023 T ___gnat_rcheck_26
0040cec0 ffbff023 T ___gnat_rcheck_27
0040cee3 ffbff023 T ___gnat_rcheck_28
0040cf06 ffbff023 T ___gnat_rcheck_29
0040cf29 ffbff023 T ___gnat_rcheck_30
0040cf4c ffbff023 T ___gnat_rcheck_31
0040cf6f ffbff023 T ___gnat_rcheck_32
004013c4 ffbff023 T _adafinal
0040c9c3 ffbff024 T ___gnat_raise_exception
00416120 ffbeb024 R _ada__exceptions__rmsg_17
00416144 ffbeb024 R _ada__exceptions__rmsg_19
00414690 ffbec024 D _ada__finalization__limited_controlledE
00414030 ffbec026 D ___gnat_version
0040b70e ffbff027 T _ada__exceptions__exception_data__exception_info_maxlengthXn
0040ca99 ffbff027 T _ada__exceptions__raise_with_location_and_msg
0040bff9 ffbff028 T ___gnat_notify_handled_exception
0041c03c ffbe4028 I __head_libmsvcrt_a
0040b5eb ffbff028 T _ada__exceptions__exception_data__basic_exception_info_maxlengthXn
0040c9e7 ffbff028 T _ada__exceptions__raise_from_signal_handler
0041b168 ffbe8028 b _plist_cs
00414840 ffbec028 D _system__file_io__file_io_clean_up_typeE
0040cf92 ffbff029 T ___gnat_reraise
0040c6d0 ffbff02b T _ada__exceptions__exception_information
0040c5ff ffbff02b T _ada__exceptions__poll
0040d071 ffbff02c T _ada__exceptions__save_occurrence__2
0040d184 ffbff02c T _ada__exceptions__string_to_eid
0041a570 ffbe802c B _ada__streams__root_stream_typeB
0041a610 ffbe802c B _system__finalization_root__empty_root_controlledB
004144b0 ffbec02c D _system__finalization_root__root_controlledE
0040d02f ffbff02f T _ada__exceptions__reraise_occurrence_no_defer
004161f5 ffbeb02f R _ada__exceptions__rmsg_26
004171cc ffbeb030 r .eh_frame
00411520 ffbff030 T ___deregister_frame
00410e60 ffbff030 T ___do_global_dtors
0040e7e0 ffbff030 T ___gnat_create_output_file
0040b000 ffbff030 T ___gnat_env_count
0040ee30 ffbff030 T ___gnat_file_exists
0040e700 ffbff030 T ___gnat_get_debuggable_suffix_ptr
0040e6d0 ffbff030 T ___gnat_get_executable_suffix_ptr
0040e6a0 ffbff030 T ___gnat_get_object_suffix_ptr
0040b150 ffbff030 T ___gnat_initialize
0040ef70 ffbff030 T ___gnat_is_readable_file
0040efa0 ffbff030 T ___gnat_is_writable_file
0040e730 ffbff030 T ___gnat_open_read
0040e260 ffbff030 T ___gnat_ttyname
00411260 ffbff030 T ___register_frame
0041b1c0 ffbe8030 B ___w32_sharedptr_unexpected
00401000 ffbff030 t __mingw32_init_mainargs
0040c993 ffbff030 T _ada__exceptions__raise_exception
00404810 ffbff030 T _ada__finalization__controlledDA
00404620 ffbff030 T _ada__finalization__controlledIP
00404860 ffbff030 T _ada__finalization__limited_controlledIP
00405120 ffbff030 T _ada__finalization__list_controller__finalize__2
00404cf0 ffbff030 T _ada__finalization__list_controller__simple_list_controllerIP
0040a080 ffbff030 T _ada__tags__external_tag_htable__get_nextXn
00409f00 ffbff030 T _ada__tags__htable_subprograms__equalXn
0040ab10 ffbff030 T _ada__tags__register_interface_tag
00408850 ffbff030 T _ada__text_io__mode
00410e00 ffbff030 t _do_pseudo_reloc
004110d0 ffbff030 t _init_object_mutex
00402570 ffbff030 T _system__exception_table__equal
004028d0 ffbff030 T _system__exception_table__exception_data_arrayIP
004023f0 ffbff030 T _system__exception_table__exception_htable__get_nextXn
00402640 ffbff030 T _system__exception_table__hash
004027f0 ffbff030 T _system__exception_table__registered_exceptions_count
0041ac90 ffbe8030 B _system__file_control_block__afcbB
00405900 ffbff030 T _system__file_io__check_file_open
00405760 ffbff030 T _system__file_io__file_io_clean_up_typeDA__2
004053a0 ffbff030 T _system__file_io__file_io_clean_up_typeIP
00405410 ffbff030 t _system__file_io__file_io_clean_up_typeSI___clean__2.0
00406290 ffbff030 T _system__file_io__make_buffered
004062c0 ffbff030 T _system__file_io__make_line_buffered
004062f0 ffbff030 T _system__file_io__make_unbuffered
00407370 ffbff030 T _system__file_io__mode
00406e50 ffbff030 T _system__file_io__reset__2
004045c0 ffbff030 T _system__finalization_implementation__limited_record_controllerIP
004031c0 ffbff030 T _system__finalization_implementation__limited_record_controllerSR
004031f0 ffbff030 T _system__finalization_implementation__limited_record_controllerSW
004045f0 ffbff030 T _system__finalization_implementation__record_controllerIP
004033d0 ffbff030 T _system__finalization_implementation__record_controllerSR
00403400 ffbff030 T _system__finalization_implementation__record_controllerSW
00414450 ffbec030 D _system__finalization_root__empty_root_controlledE
0041a6d0 ffbe8030 B _system__finalization_root__root_controlledB
00403170 ffbff030 T _system__finalization_root__root_controlledIP
00402320 ffbff030 T _system__secondary_stack__chunk_idIP
00401dd0 ffbff030 T _system__soft_links__create_tsd
00401da0 ffbff030 T _system__soft_links__tsdIP
0040e0b0 ffbff030 T _system__stream_attributes__w_ad
0040e0e0 ffbff030 T _system__stream_attributes__w_as
0040dca0 ffbff030 T _system__stream_attributes__w_b
0040dcd0 ffbff030 T _system__stream_attributes__w_c
0040dd00 ffbff030 T _system__stream_attributes__w_f
0040dd30 ffbff030 T _system__stream_attributes__w_i
0040dda0 ffbff030 T _system__stream_attributes__w_li
0040de20 ffbff030 T _system__stream_attributes__w_lli
0040de50 ffbff030 T _system__stream_attributes__w_llu
0040de80 ffbff030 T _system__stream_attributes__w_lu
0040deb0 ffbff030 T _system__stream_attributes__w_sf
0040dee0 ffbff030 T _system__stream_attributes__w_si
0040df10 ffbff030 T _system__stream_attributes__w_ssi
0040df40 ffbff030 T _system__stream_attributes__w_ssu
0040df70 ffbff030 T _system__stream_attributes__w_su
0040dfa0 ffbff030 T _system__stream_attributes__w_u
0040dfd0 ffbff030 T _system__stream_attributes__w_wc
004109b0 ffbff030 T _system__traceback__c_call_chain
004109e0 ffbff030 T _system__traceback__call_chain
00410600 ffbff030 T _system__wch_con__get_wc_encoding_method
00410c20 ffbff030 T _system__wch_jis__jis_to_euc
00412bb0 ffbff030 T _telldir
0040b6dd ffbff031 T ___gnat_append_info_e_info
0040bc91 ffbff031 T _ada__exceptions__exception_data__tailored_exception_tracebackXn
00416a9c ffbeb034 r .eh_frame
00417198 ffbeb034 r .eh_frame
00417450 ffbeb034 r .eh_frame
00416900 ffbeb034 r .rdata
0041a950 ffbe8034 B _ada__finalization__controlledB
0041aa10 ffbe8034 B _ada__finalization__limited_controlledB
00414770 ffbec034 D _ada__finalization__list_controller__list_controllerE
0041ae50 ffbe8034 B _ada__text_io__text_afcbB
0041a7b0 ffbe8034 B _system__finalization_implementation__limited_record_controllerB
0040cffa ffbff035 T _ada__exceptions__reraise_occurrence_always
0040d263 ffbff036 T _ada__exceptions__wide_exception_name
0040d299 ffbff036 T _ada__exceptions__wide_exception_name__2
0040d2cf ffbff036 T _ada__exceptions__wide_wide_exception_name
0040d305 ffbff036 T _ada__exceptions__wide_wide_exception_name__2
0040d1b0 ffbff037 T _ada__exceptions__string_to_eo
004171fc ffbeb038 r .eh_frame
0041661c ffbeb038 r .rdata
004169f0 ffbeb038 R ___EH_FRAME_BEGIN__
0040c021 ffbff038 T ___gnat_notify_unhandled_exception
0041ab90 ffbe8038 B _ada__finalization__list_controller__list_controllerB
0041aad0 ffbe8038 B _ada__finalization__list_controller__simple_list_controllerB
00414710 ffbec038 D _ada__finalization__list_controller__simple_list_controllerE
0041ad50 ffbe8038 B _system__file_io__file_io_clean_up_typeB
0041a870 ffbe8038 B _system__finalization_implementation__record_controllerB
004145b0 ffbec038 D _system__finalization_implementation__record_controllerE
0040c087 ffbff03e T _ada__exceptions__stream_attributes__eid_to_stringXn
004108d1 ffbff03f T ___gnat_install_SEH_handler
0040cfbb ffbff03f T _ada__exceptions__reraise_occurrence
0040c0c5 ffbff03f T _ada__exceptions__stream_attributes__eo_to_stringXn
0040e900 ffbff040 T ___gnat_file_length
0040afc0 ffbff040 T ___gnat_fill_arg
0040b050 ffbff040 T ___gnat_fill_env
0040ef30 ffbff040 T ___gnat_is_directory
0040eef0 ffbff040 T ___gnat_is_regular_file
0040e140 ffbff040 T ___gnat_is_regular_file_fd
0040edf0 ffbff040 T ___gnat_named_file_length
0040e810 ffbff040 T ___gnat_open_append
0040e7a0 ffbff040 T ___gnat_open_create
0040e850 ffbff040 T ___gnat_open_new
0040e760 ffbff040 T ___gnat_open_rw
0040e9b0 ffbff040 T ___gnat_readdir
0040efd0 ffbff040 T ___gnat_set_writable
00416224 ffbeb040 R _ada__exceptions__rmsg_27
0040a7c0 ffbff040 T _ada__tags___elabb
0040a260 ffbff040 T _ada__tags__check_size
0040a1c0 ffbff040 T _ada__tags__external_tag_htable__setXn
0040af50 ffbff040 T _ada__tags__external_tag_htable__TtableBIPXn
0040a460 ffbff040 T _ada__tags__get_num_prim_ops
00409fa0 ffbff040 T _ada__tags__htable_subprograms__hashXn
0040aa30 ffbff040 T _ada__tags__inherit_dt
0040abf0 ffbff040 T _ada__tags__set_num_prim_ops
00415ba4 ffbeb040 R _ada__tags__signature_kindS
0040a740 ffbff040 T _ada__tags__wide_expanded_name
0040a780 ffbff040 T _ada__tags__wide_wide_expanded_name
004090b0 ffbff040 T _ada__text_io__putc
00409b80 ffbff040 t _ada__text_io__write__has_translated_characters__2.1
00410f60 ffbff040 t _read_uleb128
00402530 ffbff040 T _system__exception_table__exception_htable__setXn
00402900 ffbff040 T _system__exception_table__exception_htable__TtableBIPXn
0041abf0 ffbe8040 B _system__file_control_block__afcb_ptrL
00405360 ffbff040 T _system__file_control_block__afcbIP
004156ac ffbeb040 R _system__file_control_block__file_modeS
004057b0 ffbff040 T _system__file_io__append_set
00414530 ffbec040 D _system__finalization_implementation__limited_record_controllerE
00403290 ffbff040 T _system__finalization_implementation__Oeq
004034a0 ffbff040 T _system__finalization_implementation__Oeq__2
00402c80 ffbff040 T _system__finalization_root__Oeq__2
00401d00 ffbff040 T _system__soft_links___elabb
00415e04 ffbeb040 R _system__standard_library__exception_trace_kindS
0040e070 ffbff040 T _system__stream_attributes__i_as
0040d830 ffbff040 T _system__stream_attributes__i_b
0040d870 ffbff040 T _system__stream_attributes__i_c
0040d8b0 ffbff040 T _system__stream_attributes__i_f
0040d8f0 ffbff040 T _system__stream_attributes__i_i
0040d930 ffbff040 T _system__stream_attributes__i_lf
0040d970 ffbff040 T _system__stream_attributes__i_li
0040daa0 ffbff040 T _system__stream_attributes__i_lu
0040dae0 ffbff040 T _system__stream_attributes__i_sf
0040db20 ffbff040 T _system__stream_attributes__i_si
0040db60 ffbff040 T _system__stream_attributes__i_ssi
0040dba0 ffbff040 T _system__stream_attributes__i_ssu
0040dbe0 ffbff040 T _system__stream_attributes__i_su
0040dc20 ffbff040 T _system__stream_attributes__i_u
0040dc60 ffbff040 T _system__stream_attributes__i_wc
0040dd60 ffbff040 T _system__stream_attributes__w_lf
00410300 ffbff040 t _system__wch_stw__get_next_code__in_char.3
0040ea00 ffbff040 t _win32_filetime
0040e290 ffbff040 t _winflush_init
0040b185 ffbff041 T _ada__exceptions__exception_occurrenceIP
0040c104 ffbff044 T _ada__exceptions__stream_attributes__string_to_eidXn
0040d21b ffbff048 T ___gnat_to_stderr
0041af50 ffbe8048 B _ada__text_io__standard_out_afcb
0040cac0 ffbff04f T ___gnat_raise_with_msg
0040c634 ffbff04f T _ada__exceptions__call_chain
0040bde7 ffbff04f T _ada__exceptions__exception_propagation__propagate_exceptionXn
00416ad0 ffbeb050 r .eh_frame
0040ea40 ffbff050 T ___gnat_file_time_name
0040e650 ffbff050 T ___gnat_get_current_dir
0040f010 ffbff050 T ___gnat_set_executable
0040f060 ffbff050 T ___gnat_set_readonly
00404d60 ffbff050 T _ada__finalization__list_controller__list_controllerIP
0040a0b0 ffbff050 T _ada__tags__external_tag_htable__get_non_nullXn
00409f50 ffbff050 t _ada__tags__htable_subprograms__hash__h.0
0040a6e0 ffbff050 T _ada__tags__parent_tag
00407460 ffbff050 T _ada__text_io__file_modeRP
00408720 ffbff050 T _ada__text_io__line_length
00408bc0 ffbff050 T _ada__text_io__page_length
00409320 ffbff050 T _ada__text_io__reset__2
004094e0 ffbff050 T _ada__text_io__set_error
00409530 ffbff050 T _ada__text_io__set_input
004096f0 ffbff050 T _ada__text_io__set_output
00409b30 ffbff050 T _ada__text_io__ungetc
00411550 ffbff050 t _base_from_object
00410f10 ffbff050 t _size_of_encoded_value
00402420 ffbff050 T _system__exception_table__exception_htable__get_non_nullXn
004073a0 ffbff050 T _system__file_io__check_read_status
004073f0 ffbff050 T _system__file_io__check_write_status
004039c0 ffbff050 t _system__finalization_implementation__adjust__reverse_adjust__2.1
00402c20 ffbff050 T _system__finalization_root__root_controlledSI
00401940 ffbff050 t _system__restrictions__acquire_restrictions__get_natural.1
00401cb0 ffbff050 T _system__soft_links__task_name_nt
0040e020 ffbff050 T _system__stream_attributes__i_ad
0040d9b0 ffbff050 T _system__stream_attributes__i_llf
0040da00 ffbff050 T _system__stream_attributes__i_lli
0040da50 ffbff050 T _system__stream_attributes__i_llu
0040ddd0 ffbff050 T _system__stream_attributes__w_llf
0040fb20 ffbff050 T _system__string_ops__str_concat_cc
0040fe60 ffbff050 t _system__wch_stw__get_next_code__get_utf_32__get_utf_byte.2
00415648 ffbeb054 r .rdata
00415d8a ffbeb05a r _msg1.1
0040b1c6 ffbff05f T _ada__exceptions__exception_data__append_info_addressXn
00410e90 ffbff060 T ___do_global_ctors
0040d4c0 ffbff060 T ___gnat_free
0040f740 ffbff060 T ___gnat_locate_exec_on_path
0040e5c0 ffbff060 T ___gnat_try_lock
00401190 ffbff060 t ___mingw_CRTStartup
0041a8f0 ffbe8060 B _ada__finalization__controlledT
0041a9b0 ffbe8060 B _ada__finalization__limited_controlledT
0041ab30 ffbe8060 B _ada__finalization__list_controller__list_controllerT
0041aa70 ffbe8060 B _ada__finalization__list_controller__simple_list_controllerT
0041a510 ffbe8060 B _ada__streams__root_stream_typeT
0040a200 ffbff060 T _ada__tags__check_signature
0040a800 ffbff060 T _ada__tags__cw_membership
0040a2a0 ffbff060 T _ada__tags__descendant_tag
0040a000 ffbff060 T _ada__tags__external_tag_htable__getXn
00415c84 ffbeb060 R _ada__tags__tagged_kindS
004077e0 ffbff060 T _ada__text_io__afcb_allocate__2
00408670 ffbff060 T _ada__text_io__getc
00409670 ffbff060 T _ada__text_io__set_line_length
00409740 ffbff060 T _ada__text_io__set_page_length
0041ae90 ffbe8060 B _ada__text_io__standard_err_afcb
0041aef0 ffbe8060 B _ada__text_io__standard_in_afcb
00409e80 ffbff060 T _ada__text_io__text_afcbIP
0041adf0 ffbe8060 B _ada__text_io__text_afcbT
00412af0 ffbff060 T _closedir
00410fa0 ffbff060 t _read_sleb128
00415000 ffbeb060 r _restrictions.0
00412b50 ffbff060 T _rewinddir
00402370 ffbff060 T _system__exception_table__exception_htable__getXn
0041ac30 ffbe8060 B _system__file_control_block__afcbT
0041acf0 ffbe8060 B _system__file_io__file_io_clean_up_typeT
00405fe0 ffbff060 T _system__file_io__form_boolean
00406df0 ffbff060 T _system__file_io__read_buf__2
00406f90 ffbff060 T _system__file_io__write_buf
00403220 ffbff060 T _system__finalization_implementation__limited_record_controllerSI
0041a750 ffbe8060 B _system__finalization_implementation__limited_record_controllerT
00403430 ffbff060 T _system__finalization_implementation__record_controllerSI
0041a810 ffbe8060 B _system__finalization_implementation__record_controllerT
0041a5b0 ffbe8060 B _system__finalization_root__empty_root_controlledT
0041a670 ffbe8060 B _system__finalization_root__root_controlledT
00401aa0 ffbff060 T _system__restrictions__rident__restrictions_infoIP
00410cc0 ffbff060 T _system__wch_jis__shift_jis_to_jis
0040fe00 ffbff060 t _system__wch_stw__get_next_code__get_utf_32__get_hex.1
004163e4 ffbeb064 r .rdata
004165b4 ffbeb068 R ___gnat_vmsp
0040f830 ffbff070 T ___gnat_copy_attribs
0040e1b0 ffbff070 T ___gnat_full_name
0040e890 ffbff070 T ___gnat_open_new_temp
0040f0c0 ffbff070 T ___gnat_portable_spawn
0040e940 ffbff070 T ___gnat_tmp_name
00402940 ffbff070 T _ada__io_exceptions___elabs
00407840 ffbff070 T _ada__text_io__afcb_close__2
00409ac0 ffbff070 T _ada__text_io__terminate_line
00411800 ffbff070 t _frame_heapsort
00411100 ffbff070 t _init_object_mutex_once
00405e20 ffbff070 T _system__file_io__flush
0040d450 ffbff070 t _system__memory__check_available_memory
00410bb0 ffbff070 T _system__wch_jis__euc_to_jis
00410c50 ffbff070 T _system__wch_jis__jis_to_shift_jis
0040b2b6 ffbff071 T _ada__exceptions__exception_data__append_info_natXn
00416a28 ffbeb074 r .eh_frame
004013e7 ffbff079 T _main
00412310 ffbff080 t ___w32_sharedptr_get
0040a8e0 ffbff080 T _ada__tags__displace
0040a860 ffbff080 T _ada__tags__iw_membership
00408a70 ffbff080 T _ada__text_io__nextc
00411650 ffbff080 t _fde_single_encoding_compare
004025c0 ffbff080 T _system__exception_table__get_registered_exceptions
00403d20 ffbff080 T _system__finalization_implementation__deep_tag_attach
00402070 ffbff080 T _system__secondary_stack__ss_init
0041557c ffbeb084 R _system__restrictions__rident__restriction_idN
00415be4 ffbeb08a R _ada__tags__prim_op_kindS
0040c167 ffbff08f t _ada__exceptions__stream_attributes__string_to_eo__next_string.2
0040ee60 ffbff090 T ___gnat_is_absolute_path
0040e300 ffbff090 T ___gnat_is_windows_xp
0040f6b0 ffbff090 T ___gnat_locate_exec
0040a5f0 ffbff090 T _ada__tags__is_descendant_at_same_level
00407930 ffbff090 T _ada__text_io__create
00407b40 ffbff090 T _ada__text_io__end_of_line
00408af0 ffbff090 T _ada__text_io__open
00411770 ffbff090 t _frame_downheap
004115a0 ffbff090 t _get_cie_encoding
00402830 ffbff090 T _system__exception_table___elabb
00405e90 ffbff090 T _system__file_io__fopen_mode
00406d60 ffbff090 T _system__file_io__read_buf
00403c90 ffbff090 T _system__finalization_implementation__deep_tag_adjust
00403da0 ffbff090 T _system__finalization_implementation__deep_tag_finalize
00401fd0 ffbff090 T _system__secondary_stack__ss_free
0040b225 ffbff091 T _ada__exceptions__exception_data__append_info_characterXn
0041a470 ffbe8094 B _system__exception_table__exception_htable__tableXn
0040c7a6 ffbff095 T _ada__exceptions__exception_name
00416854 ffbeb09c r .rdata
0040e500 ffbff0a0 T ___gnat_to_gm_time
00401030 ffbff0a0 t __mingw32_init_fmode
0040a300 ffbff0a0 T _ada__tags__expanded_name
0040a3a0 ffbff0a0 T _ada__tags__external_tag
0040a100 ffbff0a0 T _ada__tags__external_tag_htable__removeXn
0040aa70 ffbff0a0 T _ada__tags__inherit_tsd
0040ac50 ffbff0a0 T _ada__tags__set_offset_to_top
00408790 ffbff0a0 T _ada__text_io__look_ahead
00408c30 ffbff0a0 T _ada__text_io__put
00409280 ffbff0a0 T _ada__text_io__reset
004116d0 ffbff0a0 t _fde_mixed_encoding_compare
00412be0 ffbff0a0 T _seekdir
00402470 ffbff0a0 T _system__exception_table__exception_htable__removeXn
00405c40 ffbff0a0 T _system__file_io__end_of_file
00402b60 ffbff0a0 T _system__finalization_root___assign
0040b7f5 ffbff0a2 T _ada__exceptions__exception_data__append_info_exception_nameXn
00415ce4 ffbeb0a6 R _ada__tags__signature_typeS
0040c6fb ffbff0ab T _ada__exceptions__exception_message
0040eab0 ffbff0b0 T ___gnat_set_file_time_name
004089a0 ffbff0b0 T _ada__text_io__new_page
00408cd0 ffbff0b0 T _ada__text_io__put__2
00406040 ffbff0b0 T _system__file_io__form_integer
00403e30 ffbff0b0 T _system__finalization_implementation__deep_tag_initialize
00404260 ffbff0b0 t _system__finalization_implementation__get_deep_controller
0040b613 ffbff0b5 T _ada__exceptions__exception_data__append_info_basic_exception_tracebackXn
0040b8de ffbff0b7 T _ada__exceptions__exception_data__basic_exception_tracebackXn
0040b995 ffbff0ba T _ada__exceptions__exception_data__exception_informationXn
00416934 ffbeb0bc r _w32_atom_suffix
0040b735 ffbff0c0 T ___gnat_append_info_e_msg
004010d0 ffbff0c0 t __gnu_exception_handler@4
00407bf0 ffbff0c0 T _ada__text_io__end_of_page
00407f90 ffbff0c0 T _ada__text_io__get_immediate
00405f20 ffbff0c0 T _system__file_io__form
00406320 ffbff0c0 T _system__file_io__name
00418050 ffbe80c0 B _system__restrictions__rident__profile_info
00418110 ffbe80c0 B _system__restrictions__run_time_restrictions
00410340 ffbff0c0 t _system__wch_stw__get_next_code
0040d09d ffbff0ca T _ada__exceptions__save_occurrence_no_private
0044a030 ffbe30cc N .stab
0040c84d ffbff0cc T _ada__exceptions__exception_name_simple
00410d30 ffbff0d0 T ___gnat_backtrace
0040ed20 ffbff0d0 T ___gnat_stat
00411170 ffbff0d0 T ___register_frame_info_bases
00409580 ffbff0d0 T _ada__text_io__set_line
00411000 ffbff0d0 t _read_encoded_value_with_base
00405b70 ffbff0d0 T _system__file_io__delete
00402cc0 ffbff0d0 T _system__finalization_root___assign__2
00401990 ffbff0d0 T _system__restrictions___elabb
0040d370 ffbff0e0 T ___gnat_malloc
0040d520 ffbff0e0 T ___gnat_realloc
00411290 ffbff0e0 T ___register_frame_info_table_bases
00407a40 ffbff0e0 T _ada__text_io__end_of_file
00408070 ffbff0e0 T _ada__text_io__get_immediate__3
004088a0 ffbff0e0 T _ada__text_io__new_line
004032d0 ffbff0e0 T _system__finalization_implementation___assign
0040bbae ffbff0e3 T _ada__exceptions__exception_data__set_exception_msgXn
00409950 ffbff0f0 T _ada__text_io__skip_page
0040e390 ffbff0f0 T _getc_immediate_common
004034e0 ffbff0f0 T _system__finalization_implementation___assign__2
00404170 ffbff0f0 T _system__finalization_implementation__finalize_one
00410510 ffbff0f0 T _system__wch_stw__string_to_wide_wide_string
004029e0 ffbff100 T _ada__streams___elabs
0041afd0 ffbe8100 B _ada__tags__external_tag_htable__tableXn
00411990 ffbff100 t _add_fdes
004129f0 ffbff100 T _readdir
00403a10 ffbff100 T _system__finalization_implementation__adjust__2
00403ee0 ffbff100 T _system__finalization_implementation__detach_from_final_list
0040f340 ffbff110 T ___gnat_portable_wait
004125c0 ffbff110 T ___udivdi3
00407d30 ffbff110 T _ada__text_io__get
00407e60 ffbff110 T _ada__text_io__get__3
00408d80 ffbff110 T _ada__text_io__put__3
004057f0 ffbff110 T _system__file_io__chain_file
00406e80 ffbff110 T _system__file_io__reset
00410400 ffbff110 T _system__wch_stw__string_to_wide_string
004012b0 ffbff114 T _adainit
004014c0 ffbff120 T ___gnat_set_globals
0040bcc2 ffbff120 T ___gnat_tailored_exception_information
00411870 ffbff120 t _classify_object_over_fdes
00411a90 ffbff120 t _linear_search_fdes
0040fb70 ffbff120 T _system__string_ops__str_concat_cs
004162b4 ffbeb130 R _ada__exceptions__exception_data__betb_headerXn
00409bc0 ffbff130 T _ada__text_io__write__2
0040b342 ffbff133 T _ada__exceptions__exception_data__append_info_stringXn
004218cc ffbe3138 N .stab
00451404 ffbe3138 N .stab
00421794 ffbe3138 N .stab
00416b20 ffbeb140 r .eh_frame
00405ce0 ffbff140 T _system__file_io__finalize__2
0042e514 ffbe3144 N .stab
0042e0ac ffbe3150 N .stab
0040a4a0 ffbff150 T _ada__tags__internal_tag
00409370 ffbff150 T _ada__text_io__set_col
0040ba4f ffbff15f T _ada__exceptions__exception_data__set_exception_c_msgXn
00416448 ffbeb160 r .rdata
004113b0 ffbff160 T ___deregister_frame_info_bases
00410a30 ffbff160 T ___gnat_last_chance_handler
004084f0 ffbff160 T _ada__text_io__get_line__3
00404010 ffbff160 T _system__finalization_implementation__finalize_list
004097c0 ffbff170 T _ada__text_io__skip_line
00405440 ffbff170 T _system__file_io__file_io_clean_up_typeSI__2
0040fc90 ffbff170 T _system__string_ops__str_concat_sc
0040b475 ffbff176 T _ada__exceptions__exception_data__append_info_basic_exception_informationXn
00404690 ffbff180 T _ada__finalization___assign__3
00402670 ffbff180 T _system__exception_table__internal_exception
00403b10 ffbff180 T _system__finalization_implementation__attach_to_final_list
0040f1b0 ffbff190 T ___gnat_portable_no_block_spawn
00409cf0 ffbff190 T _ada__text_io___elabb
004090f0 ffbff190 T _ada__text_io__read__2
004055d0 ffbff190 T _system__file_io___assign__2
004060f0 ffbff190 T _system__file_io__form_parameter
00408350 ffbff1a0 t _ada__text_io__get_line__get_rest__3.0
00401e30 ffbff1a0 T _system__secondary_stack__ss_allocate
00415e44 ffbeb1a8 R _ada__exceptions__null_occurrence
0040be4c ffbff1ad T _ada__exceptions__exception_traces__notify_exceptionXn
004051b0 ffbff1b0 T _system__file_control_block___elabs
0040eb60 ffbff1c0 T ___gnat_get_libraries_from_registry
00408170 ffbff1c0 T _ada__text_io__get_line
0041a1f0 ffbe81c0 B _system__soft_links__nt_tsd
00412130 ffbff1d0 T __Unwind_Find_FDE
00408eb0 ffbff1e0 T _ada__text_io__put_line
00402120 ffbff1e0 T _system__secondary_stack___elabb
00416668 ffbeb1e4 r .rdata
00412800 ffbff1f0 T _opendir
00412390 ffbff200 T ___w32_sharedptr_initialize
0044a804 ffbe3210 N .stab
00417234 ffbeb21c r .eh_frame
0040f8f0 ffbff230 T _system__string_ops__str_concat
0040d600 ffbff230 T _system__string_ops_concat_3__str_concat_3
00405930 ffbff240 T _system__file_io__close
004156ec ffbeb24c r .rdata
0040f460 ffbff250 T ___gnat_locate_regular_file
00415952 ffbeb252 R _ada__text_io__type_setS
00404350 ffbff260 t _system__finalization_implementation__raise_from_finalize
004214f4 ffbe32a0 N .stab
00410630 ffbff2a1 T ___gnat_SEH_error_handler
00402dd0 ffbff300 T _system__finalization_root___elabs
004074d0 ffbff310 T _ada__text_io___elabs
00401610 ffbff310 T _system__restrictions___elabs
0042e1fc ffbe3318 N .stab
00404df0 ffbff330 T _ada__finalization__list_controller___elabs
00421a04 ffbe336c N .stab
00406ff0 ffbff380 T _system__file_io___elabb
004048f0 ffbff3a0 T _ada__finalization___elabs
004035d0 ffbff3d0 T _system__finalization_implementation___elabs
0040c1f6 ffbff409 T _ada__exceptions__stream_attributes__string_to_eoXn
0040feb0 ffbff450 t _system__wch_stw__get_next_code__get_utf_32.0
0041507c ffbeb500 R _system__restrictions__rident__restriction_idS
00416c60 ffbeb538 r .eh_frame
00411bb0 ffbff580 t _search_object
0044a0fc ffbe3708 N .stab
004063e0 ffbff980 T _system__file_io__open
004181d0 ffbea020 B _system__soft_links__nt_exc_stack
0041d000 ffbe74f4 N .stab
0044aa14 ffbe99f0 N .stab
0043eb28 ffbee508 N .stab
00421d70 ffbef33c N .stab
0042e658 ffbf34d0 N .stab

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-10 11:57               ` Rego, P.
  2013-07-10 11:58                 ` Rego, P.
@ 2013-07-11  8:35                 ` Niklas Holsti
  2013-07-12  0:35                   ` Randy Brukardt
  2013-07-18 15:12                   ` Rego, P.
  1 sibling, 2 replies; 25+ messages in thread
From: Niklas Holsti @ 2013-07-11  8:35 UTC (permalink / raw)


On 13-07-10 13:57 , Rego, P. wrote:
>>> and the read size of bla.o is 611 bytes.
>> What do you mean by "read size"? Perhaps this is a typo, and you meant
>> to write "real size"?
>> If you mean the total size of the file bla.o (from the directory
>> listing, e.g "ls -l"), this is not a useful comparison, because the file
>> contains much more data than just the machine code: there are headers,
>> symbol tables, and other debug information -- among other things, the
>> information that "nm" uses to associate machine code addresses with
>> identifier symbols.
> 
> Yes, it is from directory listing. In this case, the 'size' provided
> by "ls -l" should be bigger, right?

Yes, if you consider only the size of the code ("text" segment). For
data, if the program contains uninitialized, statically allocated
variables, the file size can be smaller than the "memory image" size,
because the .o file only describes those variables (name, size, address
or offset) but does not provide values for the variables.

>>> Also, if I run 
>>>    nm --print-size --size-sort bla.exe > bla.txt
   ...
>>> but adding the second column, the result (in Excel I convert it
>>> to decimal before adding) is 8.61147E+12 and the real bla.exe
>>> size is 1512500 bytes, also very different.
>> Again, if by "real size" you mean the entire size of the file bla.exe,
>> the comparison it not useful, just as for bla.o: bla.exe contains a lot
>> more data than just the machine code.
> I don't think 8.61147E+12 is irrelevant.

The fact that this number is so absurdly large is relevant, and the fact
that it is larger than the size of the .o file may be relevant, unless
the number includes the size of uninitialized statically allocated data
-- see above.

Continued in reply to your next message...

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
      .      @       .


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-10 11:58                 ` Rego, P.
@ 2013-07-11  9:10                   ` Niklas Holsti
  2013-07-18 14:09                     ` Rego, P.
  0 siblings, 1 reply; 25+ messages in thread
From: Niklas Holsti @ 2013-07-11  9:10 UTC (permalink / raw)


On 13-07-10 13:58 , Rego, P. wrote:
> Output "bla.txt" of nm:

(For the record, I understand from your preceding message that this is
the output of "nm --print-size --size-sort bla.exe".)

> 00414176 ffbec001 D ___gl_locking_policy
> 00414175 ffbec001 D ___gl_queuing_policy
> 00414174 ffbec001 D ___gl_task_dispatching_policy

This is starting to look like a bug in your "nm". The three variables
above are clearly of size 1 octet (the addresses differ by 1 octet at
each step) but the "size" column is not 00000001.

An example where the size (of the first object) is evidently 2 octets
(I'm quoting these line pairs in address order, not in the original size
order):

> 00414b36 ffbec002 D _ada__exceptions__exception_traces__nlineXn
> 00414b38 ffbec004 D ___gnat_exception_actions_global_action

And 3 octets:

> 00414b41 ffbec003 D _system__stack_checking__multi_processor
> 00414b44 ffbec00c D _system__stack_checking__null_stack_info

And 4 octets:

> 00414b38 ffbec004 D ___gnat_exception_actions_global_action
> 00414b3c ffbec004 D ___gnat_exception_actions_initialized

In each case, in the "size" column, the last three hex digits show the
correct size, but the first five are "ffbec", clearly wrong for a size
value.

Sorting the whole listing into address order shows that the first five
hex digits of the "size" column behave in a systematic manner: the list
starts with 857 lines with "ffbff" in these digits, and all these
symbols are of type "t" or "T". The next line is type "D" and has
"ffbec" in these digits. I haven't tried to discover any rules for this,
since there is evidently a bug in your "nm", producing these incorrect
"size" values.

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
      .      @       .


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-11  8:35                 ` Niklas Holsti
@ 2013-07-12  0:35                   ` Randy Brukardt
  2013-07-18 15:16                     ` Rego, P.
  2013-07-18 15:12                   ` Rego, P.
  1 sibling, 1 reply; 25+ messages in thread
From: Randy Brukardt @ 2013-07-12  0:35 UTC (permalink / raw)


"Niklas Holsti" <niklas.holsti@tidorum.invalid> wrote in message 
news:b4791rF6i9hU1@mid.individual.net...
> On 13-07-10 13:57 , Rego, P. wrote:
>>>> and the read size of bla.o is 611 bytes.
>>> What do you mean by "read size"? Perhaps this is a typo, and you meant
>>> to write "real size"?
>>> If you mean the total size of the file bla.o (from the directory
>>> listing, e.g "ls -l"), this is not a useful comparison, because the file
>>> contains much more data than just the machine code: there are headers,
>>> symbol tables, and other debug information -- among other things, the
>>> information that "nm" uses to associate machine code addresses with
>>> identifier symbols.
>>
>> Yes, it is from directory listing. In this case, the 'size' provided
>> by "ls -l" should be bigger, right?
>
> Yes, if you consider only the size of the code ("text" segment). For
> data, if the program contains uninitialized, statically allocated
> variables, the file size can be smaller than the "memory image" size,
> because the .o file only describes those variables (name, size, address
> or offset) but does not provide values for the variables.

To provide a bit more background: the size of an .o file is correlated to 
the associated code size, but it (probably) has no relation to the data size 
at all.

(I'm going to explain how Janus/Ada and some ancient C compilers handled 
these files; I would expect GCC and GNAT to be similar, but I don't know for 
certain.)

.o files have a bunch headers and typcially three segments: .text (which 
contains code), .data (which contains *initialized* data), and .bss (which 
contains *uninitialized* data). There is also some relocation information 
for the code, so the .o file is generally quite a bit larger than contained 
code alone.

For Janus/Ada, we put values of *constants* (string literals, float 
literals, static aggregates, etc.) into the .data segment, but not any 
variables. Those all go into the .bss segment. (We did that to support 
putting the code and constants into EEPROM; the data (in the .bss) is the 
only part that has to be mapped to RAM.)

The .data segment is also present in its entirety in the .o file (it has to 
be, in order to have those initial values). But the .bss segment is just a 
header specifying it's size; it has no contents at all and thus contributes 
almost nothing to the size of the .o file.

So for Janus/Ada, an .o file is code size + constants size + headers. The 
data size doesn't have any impact on the .o file size at all. It's possible 
that GNAT might put some initialized things into the ".data", but I highly 
doubt it would do that for anything that is really uninitialized.

Hope this clarifies things.

                                             Randy.




^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-11  9:10                   ` Niklas Holsti
@ 2013-07-18 14:09                     ` Rego, P.
  2013-07-18 14:10                       ` Rego, P.
  0 siblings, 1 reply; 25+ messages in thread
From: Rego, P. @ 2013-07-18 14:09 UTC (permalink / raw)


On Thursday, July 11, 2013 6:10:05 AM UTC-3, Niklas Holsti wrote:
> (For the record, I understand from your preceding message that this is
> the output of "nm --print-size --size-sort bla.exe".)
Yes.

> > 00414176 ffbec001 D ___gl_locking_policy
> > 00414175 ffbec001 D ___gl_queuing_policy
> > 00414174 ffbec001 D ___gl_task_dispatching_policy
> 
> This is starting to look like a bug in your "nm". The three variables
> above are clearly of size 1 octet (the addresses differ by 1 octet at
> each step) but the "size" column is not 00000001.
I agree.

> An example where the size (of the first object) is evidently 2 octets
> (I'm quoting these line pairs in address order, not in the original size
> order):
> > 00414b36 ffbec002 D _ada__exceptions__exception_traces__nlineXn
> > 00414b38 ffbec004 D ___gnat_exception_actions_global_action
> And 3 octets:
> > 00414b41 ffbec003 D _system__stack_checking__multi_processor
> > 00414b44 ffbec00c D _system__stack_checking__null_stack_info
> And 4 octets:
> > 00414b38 ffbec004 D ___gnat_exception_actions_global_action
> > 00414b3c ffbec004 D ___gnat_exception_actions_initialized
> In each case, in the "size" column, the last three hex digits show the
> correct size, but the first five are "ffbec", clearly wrong for a size
> value.
Yes, it makes sense.

> Sorting the whole listing into address order shows that the first five
> hex digits of the "size" column behave in a systematic manner: the list
> starts with 857 lines with "ffbff" in these digits, and all these
> symbols are of type "t" or "T". The next line is type "D" and has
> "ffbec" in these digits. I haven't tried to discover any rules for this,
> since there is evidently a bug in your "nm", producing these incorrect
> "size" values.
I will try it with another version to see the results.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-18 14:09                     ` Rego, P.
@ 2013-07-18 14:10                       ` Rego, P.
  0 siblings, 0 replies; 25+ messages in thread
From: Rego, P. @ 2013-07-18 14:10 UTC (permalink / raw)


On Thursday, July 18, 2013 11:09:21 AM UTC-3, Rego, P. wrote:
> I will try it with another version to see the results.

Actually I now tried with gnat-gpl 2013, using
c:\GNAT\2013\bin\nm.exe --print-size --size-sort bla.exe > bla.2013

and between bla.2013 and bla.txt (which I used the old gnat version) there were no differences.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-11  8:35                 ` Niklas Holsti
  2013-07-12  0:35                   ` Randy Brukardt
@ 2013-07-18 15:12                   ` Rego, P.
  2013-07-18 17:57                     ` Niklas Holsti
  2013-07-19  5:02                     ` Randy Brukardt
  1 sibling, 2 replies; 25+ messages in thread
From: Rego, P. @ 2013-07-18 15:12 UTC (permalink / raw)


On Thursday, July 11, 2013 5:35:06 AM UTC-3, Niklas Holsti wrote:
> Yes, if you consider only the size of the code ("text" segment). For
> data, if the program contains uninitialized, statically allocated
> variables, the file size can be smaller than the "memory image" size,
> because the .o file only describes those variables (name, size, address
> or offset) but does not provide values for the variables.
Ok.

> The fact that this number is so absurdly large is relevant, and the fact
> that it is larger than the size of the .o file may be relevant, unless
> the number includes the size of uninitialized statically allocated data
Ok.

Interesting, I run the same code bla.adb on a Unix machine. The first part of the second column (that one which writes ffbec...), and it does not appear here.  So the lines look like 
00000000 00000001 D ada__exceptions_E

However when I add all the column, the result also seems incoherent, around 8GB.  The real bla.out generated is ~478kB.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-12  0:35                   ` Randy Brukardt
@ 2013-07-18 15:16                     ` Rego, P.
  0 siblings, 0 replies; 25+ messages in thread
From: Rego, P. @ 2013-07-18 15:16 UTC (permalink / raw)


On Thursday, July 11, 2013 9:35:23 PM UTC-3, Randy Brukardt wrote:
> To provide a bit more background: the size of an .o file is correlated to 
> the associated code size, but it (probably) has no relation to the data size 
> at all.
> 
> (I'm going to explain how Janus/Ada and some ancient C compilers handled 
> these files; I would expect GCC and GNAT to be similar, but I don't know for 
> certain.)
> .o files have a bunch headers and typcially three segments: .text (which 
> contains code), .data (which contains *initialized* data), and .bss (which 
> contains *uninitialized* data). There is also some relocation information 
> for the code, so the .o file is generally quite a bit larger than contained 
> code alone.

> For Janus/Ada, we put values of *constants* (string literals, float 
> literals, static aggregates, etc.) into the .data segment, but not any 
> variables. Those all go into the .bss segment. (We did that to support 
> putting the code and constants into EEPROM; the data (in the .bss) is the 
> only part that has to be mapped to RAM.)

> The .data segment is also present in its entirety in the .o file (it has to 
> be, in order to have those initial values). But the .bss segment is just a 
> header specifying it's size; it has no contents at all and thus contributes 
> almost nothing to the size of the .o file.

> So for Janus/Ada, an .o file is code size + constants size + headers. The 
> data size doesn't have any impact on the .o file size at all. It's possible 
> that GNAT might put some initialized things into the ".data", but I highly 
> doubt it would do that for anything that is really uninitialized.
> Hope this clarifies things.

Certaintly it clarifies, thanks Randy.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-18 15:12                   ` Rego, P.
@ 2013-07-18 17:57                     ` Niklas Holsti
  2013-07-19  5:02                     ` Randy Brukardt
  1 sibling, 0 replies; 25+ messages in thread
From: Niklas Holsti @ 2013-07-18 17:57 UTC (permalink / raw)


On 13-07-18 18:12 , Rego, P. wrote:
> On Thursday, July 11, 2013 5:35:06 AM UTC-3, Niklas Holsti wrote:
>> Yes, if you consider only the size of the code ("text" segment).
>> For data, if the program contains uninitialized, statically
>> allocated variables, the file size can be smaller than the "memory
>> image" size, because the .o file only describes those variables
>> (name, size, address or offset) but does not provide values for the
>> variables.
> Ok.
> 
>> The fact that this number is so absurdly large is relevant, and the
>> fact that it is larger than the size of the .o file may be
>> relevant, unless the number includes the size of uninitialized
>> statically allocated data
> Ok.
> 
> Interesting, I run the same code bla.adb on a Unix machine. The first
> part of the second column (that one which writes ffbec...), and it
> does not appear here.  So the lines look like 00000000 00000001 D
> ada__exceptions_E

That looks better.

> However when I add all the column, the result also seems incoherent,
> around 8GB.  The real bla.out generated is ~478kB.

If you send me the new "nm" output, I can have a look and try to
understand this 8 GB result. You can use the mail address given under
"Contact information" at http://www.tidorum.fi/en/index.html, or the
address that my signature below tries to obscure on two lines.

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
      .      @       .


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-18 15:12                   ` Rego, P.
  2013-07-18 17:57                     ` Niklas Holsti
@ 2013-07-19  5:02                     ` Randy Brukardt
  2013-07-19 13:20                       ` Eryndlia Mavourneen
  1 sibling, 1 reply; 25+ messages in thread
From: Randy Brukardt @ 2013-07-19  5:02 UTC (permalink / raw)


"Rego, P." <pvrego@gmail.com> wrote in message 
news:ca34e347-b53e-4119-b6d1-0cba6f40be79@googlegroups.com...
...
> However when I add all the column, the result also seems incoherent, 
> around 8GB.
> The real bla.out generated is ~478kB.

I wouldn't expect the *uninitialized* data to have any effect on the size of 
the .out file, either. The contents of the .o files are combined to create 
the .out, and I don't think the uninitialized data appears in it, either, 
just being a length given to the system loader. (That's definitely how it 
works on Windows, and Windows NT copied [not very well] a lot of Unix stuff, 
mainly because they started with an existing Unix targeted C compiler.)

                             Randy.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Size optimization for objects
  2013-07-19  5:02                     ` Randy Brukardt
@ 2013-07-19 13:20                       ` Eryndlia Mavourneen
  0 siblings, 0 replies; 25+ messages in thread
From: Eryndlia Mavourneen @ 2013-07-19 13:20 UTC (permalink / raw)


On Friday, July 19, 2013 12:02:38 AM UTC-5, Randy Brukardt wrote:
> "Rego, P." <pvrego@gmail.com> wrote in message 
> 
> news:ca34e347-b53e-4119-b6d1-0cba6f40be79@googlegroups.com...
> ...
> > However when I add all the column, the result also seems incoherent, 
> > around 8GB.
> > The real bla.out generated is ~478kB.
> 
> I wouldn't expect the *uninitialized* data to have any effect on the size of 
> the .out file, either. The contents of the .o files are combined to create 
> the .out, and I don't think the uninitialized data appears in it, either, 
> just being a length given to the system loader. (That's definitely how it 
> works on Windows, and Windows NT copied [not very well] a lot of Unix stuff, 
> mainly because they started with an existing Unix targeted C compiler.)
> 
>                              Randy.

That's also the way it works on VMS and RSX.  Depending on the loader, uninitialized data is typically left uninitialized (you get whatever happens to be in that memory location upon loading) or zero-filled.

The development of the Win32 kernel, and I suppose a number of other parts of Windows NT, were led by Dave Cutler, who did the design of RSX (on the PDP-11) and then VMS on the VAX (CISC) and Alpha (RISC) machines.  This is a big reason you have device driver forking in Windows, which was introduced into RSX-11M first and then later used in VMS, instead of some other scheme (such as privileged, high-priority tasks for processing data emitted by device drivers as used in RSX-11D, also designed by Dave).

-- Eryndlia (a.k.a. KK1T)

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2013-07-19 13:20 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-28 19:49 Size optimization for objects Rego, P.
2013-06-29  7:10 ` Georg Bauhaus
2013-07-01 13:56   ` Rego, P.
2013-07-01 16:49     ` G.B.
2013-06-29  9:48 ` Jack Daniels
2013-07-01 13:58   ` Rego, P.
2013-06-30 11:34 ` rrr.eee.27
2013-07-01 14:35   ` Rego, P.
2013-07-01 15:28     ` Niklas Holsti
2013-07-01 16:35       ` Rego, P.
2013-07-01 18:21         ` Niklas Holsti
2013-07-02 20:32           ` Rego, P.
2013-07-06 16:06             ` Niklas Holsti
2013-07-10 11:57               ` Rego, P.
2013-07-10 11:58                 ` Rego, P.
2013-07-11  9:10                   ` Niklas Holsti
2013-07-18 14:09                     ` Rego, P.
2013-07-18 14:10                       ` Rego, P.
2013-07-11  8:35                 ` Niklas Holsti
2013-07-12  0:35                   ` Randy Brukardt
2013-07-18 15:16                     ` Rego, P.
2013-07-18 15:12                   ` Rego, P.
2013-07-18 17:57                     ` Niklas Holsti
2013-07-19  5:02                     ` Randy Brukardt
2013-07-19 13:20                       ` Eryndlia Mavourneen

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