You've already forked gnatstudio
mirror of
https://github.com/AdaCore/gnatstudio.git
synced 2026-02-12 12:42:33 -08:00
Memory Usage View improvements
* Add special handling for unknown sizes, to avoid possible overflows when converting to C types. * Fetch any available memory usage data when opening the view, to refresh it on opening if a map file is already present * Display properly exceptions that occur when parsing map files, making sure they appear in the Messages view when running the testsuite. * Add another automatic test. For eng/ide/gnatstudio#402
This commit is contained in:
@@ -19,15 +19,16 @@ with Ada.Strings.Hash_Case_Insensitive;
|
||||
with Ada.Unchecked_Deallocation;
|
||||
with GNATCOLL.Arg_Lists;
|
||||
with GNATCOLL.Traces; use GNATCOLL.Traces;
|
||||
|
||||
with GPS.Kernel.Hooks; use GPS.Kernel.Hooks;
|
||||
with Gtkada.MDI;
|
||||
with Glib.Object; use Glib.Object;
|
||||
|
||||
package body Memory_Usage_Views.Providers is
|
||||
|
||||
Me : constant Trace_Handle := Create ("GPS.MEMORY_USAGE.PROVIDERS");
|
||||
|
||||
package Memory_Usage_Provider_Maps is
|
||||
new Ada.Containers.Indefinite_Hashed_Maps
|
||||
package Memory_Usage_Provider_Maps is new
|
||||
Ada.Containers.Indefinite_Hashed_Maps
|
||||
(Key_Type => String,
|
||||
Element_Type => Memory_Usage_Provider,
|
||||
Hash => Ada.Strings.Hash_Case_Insensitive,
|
||||
@@ -41,10 +42,10 @@ package body Memory_Usage_Views.Providers is
|
||||
-- Used to store the registered providers
|
||||
|
||||
type On_Compilation_Finished is new Compilation_Finished_Hooks_Function
|
||||
with null record;
|
||||
with null record;
|
||||
overriding procedure Execute
|
||||
(Self : On_Compilation_Finished;
|
||||
Kernel : not null access Kernel_Handle_Record'Class;
|
||||
(Self : On_Compilation_Finished;
|
||||
Kernel : not null access Kernel_Handle_Record'Class;
|
||||
Category, Target, Mode : String;
|
||||
Shadow, Background : Boolean;
|
||||
Status : Integer;
|
||||
@@ -61,36 +62,74 @@ package body Memory_Usage_Views.Providers is
|
||||
-- Ask the currently selected memory usage provider to fetch the data
|
||||
-- that needs to be displayed in the memory usage view.
|
||||
|
||||
procedure MDI_Child_Added
|
||||
(MDI : access GObject_Record'Class; Kernel : Kernel_Handle);
|
||||
-- Called when a new MDI child is added
|
||||
|
||||
procedure Async_Fetch_Memory_Usage_Data
|
||||
(Kernel : not null access Kernel_Handle_Record'Class);
|
||||
-- If there is a regitsred memory usage provider, asynchronously fetch the
|
||||
-- memory usage data.
|
||||
|
||||
---------------------
|
||||
-- MDI_Child_Added --
|
||||
---------------------
|
||||
|
||||
procedure MDI_Child_Added
|
||||
(MDI : access GObject_Record'Class; Kernel : Kernel_Handle)
|
||||
is
|
||||
pragma Unreferenced (MDI);
|
||||
|
||||
use Memory_Usage_MDI_Views;
|
||||
View : constant Memory_Usage_MDI_Views.View_Access :=
|
||||
Memory_Usage_MDI_Views.Retrieve_View (Kernel);
|
||||
begin
|
||||
if View /= null then
|
||||
Async_Fetch_Memory_Usage_Data (Kernel);
|
||||
end if;
|
||||
end MDI_Child_Added;
|
||||
|
||||
-----------------------------
|
||||
-- Fecth_Memory_Usage_Data --
|
||||
-----------------------------
|
||||
|
||||
procedure Async_Fetch_Memory_Usage_Data
|
||||
(Kernel : not null access Kernel_Handle_Record'Class) is
|
||||
begin
|
||||
declare
|
||||
Provider : constant Memory_Usage_Provider :=
|
||||
(if Global_Data.Providers.Contains ("LD")
|
||||
then Global_Data.Providers ("LD")
|
||||
else null);
|
||||
begin
|
||||
if Provider /= null and then Provider.Is_Enabled then
|
||||
Provider.Async_Fetch_Memory_Usage_Data
|
||||
(Visitor =>
|
||||
new Provider_Task_Visitor_Type'
|
||||
(Kernel => Kernel_Handle (Kernel)));
|
||||
end if;
|
||||
end;
|
||||
end Async_Fetch_Memory_Usage_Data;
|
||||
|
||||
-------------
|
||||
-- Execute --
|
||||
-------------
|
||||
|
||||
overriding procedure Execute
|
||||
(Self : On_Compilation_Finished;
|
||||
Kernel : not null access Kernel_Handle_Record'Class;
|
||||
(Self : On_Compilation_Finished;
|
||||
Kernel : not null access Kernel_Handle_Record'Class;
|
||||
Category, Target, Mode : String;
|
||||
Shadow, Background : Boolean;
|
||||
Status : Integer;
|
||||
Cmd : GNATCOLL.Arg_Lists.Arg_List) is
|
||||
Cmd : GNATCOLL.Arg_Lists.Arg_List)
|
||||
is
|
||||
pragma Unreferenced (Self, Mode, Category, Background, Shadow, Status);
|
||||
pragma Unreferenced (Cmd);
|
||||
begin
|
||||
-- ??? use the currently selected provider once we have the
|
||||
-- possibility to choose the memory usage provider to use.
|
||||
if Target = "Build All" or else Target = "Build Main" then
|
||||
declare
|
||||
Provider : constant Memory_Usage_Provider :=
|
||||
(if Global_Data.Providers.Contains ("LD") then
|
||||
Global_Data.Providers ("LD")
|
||||
else
|
||||
null);
|
||||
begin
|
||||
if Provider /= null and then Provider.Is_Enabled then
|
||||
Provider.Async_Fetch_Memory_Usage_Data
|
||||
(Visitor => new Provider_Task_Visitor_Type'
|
||||
(Kernel => Kernel_Handle (Kernel)));
|
||||
end if;
|
||||
end;
|
||||
Async_Fetch_Memory_Usage_Data (Kernel => Kernel);
|
||||
end if;
|
||||
end Execute;
|
||||
|
||||
@@ -103,15 +142,15 @@ package body Memory_Usage_Views.Providers is
|
||||
Kernel : not null access Kernel_Handle_Record'Class)
|
||||
is
|
||||
Provider : constant Memory_Usage_Provider :=
|
||||
(if Global_Data.Providers.Contains ("LD") then
|
||||
Global_Data.Providers ("LD")
|
||||
else
|
||||
null);
|
||||
(if Global_Data.Providers.Contains ("LD")
|
||||
then Global_Data.Providers ("LD")
|
||||
else null);
|
||||
begin
|
||||
if Provider /= null and then Provider.Is_Enabled then
|
||||
Provider.Async_Fetch_Memory_Usage_Data
|
||||
(Visitor => new Provider_Task_Visitor_Type'
|
||||
(Kernel => Kernel_Handle (Kernel)));
|
||||
(Visitor =>
|
||||
new Provider_Task_Visitor_Type'
|
||||
(Kernel => Kernel_Handle (Kernel)));
|
||||
end if;
|
||||
end Execute;
|
||||
|
||||
@@ -120,8 +159,10 @@ package body Memory_Usage_Views.Providers is
|
||||
----------
|
||||
|
||||
procedure Free (Self : in out Provider_Task_Visitor) is
|
||||
procedure Unchecked_Free is new Ada.Unchecked_Deallocation
|
||||
(Provider_Task_Visitor_Type'Class, Provider_Task_Visitor);
|
||||
procedure Unchecked_Free is new
|
||||
Ada.Unchecked_Deallocation
|
||||
(Provider_Task_Visitor_Type'Class,
|
||||
Provider_Task_Visitor);
|
||||
begin
|
||||
if Self /= null then
|
||||
Self.all.Free;
|
||||
@@ -139,9 +180,8 @@ package body Memory_Usage_Views.Providers is
|
||||
is
|
||||
|
||||
function Has_Memory_Overflow return Boolean
|
||||
is
|
||||
(for some Region of Memory_Regions =>
|
||||
Region.Used_Size > Region.Length);
|
||||
is (for some Region of Memory_Regions
|
||||
=> Region.Used_Size > Region.Length);
|
||||
|
||||
begin
|
||||
if not Memory_Regions.Is_Empty then
|
||||
@@ -149,24 +189,23 @@ package body Memory_Usage_Views.Providers is
|
||||
use Memory_Usage_MDI_Views;
|
||||
|
||||
View : Memory_Usage_MDI_Views.View_Access :=
|
||||
Memory_Usage_MDI_Views.Retrieve_View
|
||||
(Kernel => Self.Kernel,
|
||||
Visible_Only => True);
|
||||
Memory_Usage_MDI_Views.Retrieve_View
|
||||
(Kernel => Self.Kernel, Visible_Only => True);
|
||||
Give_Focus : constant Boolean :=
|
||||
(View = null or else Has_Memory_Overflow);
|
||||
(View = null or else Has_Memory_Overflow);
|
||||
begin
|
||||
-- Raise the view only if it was not there before or if a memory
|
||||
-- overflow occured.
|
||||
View := Memory_Usage_MDI_Views.Get_Or_Create_View
|
||||
(Self.Kernel,
|
||||
Focus => Give_Focus,
|
||||
Init => Memory_Usage_Views.On_Init'Access);
|
||||
View :=
|
||||
Memory_Usage_MDI_Views.Get_Or_Create_View
|
||||
(Self.Kernel,
|
||||
Focus => Give_Focus,
|
||||
Init => Memory_Usage_Views.On_Init'Access);
|
||||
|
||||
-- Highlight the view when it does not gain the focus to warn
|
||||
-- users that the view has been refreshed.
|
||||
if not Give_Focus then
|
||||
Highlight_Child
|
||||
(Memory_Usage_MDI_Views.Child_From_View (View));
|
||||
Highlight_Child (Memory_Usage_MDI_Views.Child_From_View (View));
|
||||
end if;
|
||||
|
||||
View.Refresh (Memory_Regions => Memory_Regions);
|
||||
@@ -188,8 +227,7 @@ package body Memory_Usage_Views.Providers is
|
||||
Trace (Me, Name & " memory usage provider registered");
|
||||
Provider.Name := To_Unbounded_String (Name);
|
||||
Global_Data.Providers.Include
|
||||
(Key => Name,
|
||||
New_Item => Memory_Usage_Provider (Provider));
|
||||
(Key => Name, New_Item => Memory_Usage_Provider (Provider));
|
||||
end Register_Provider;
|
||||
|
||||
---------------------
|
||||
@@ -197,12 +235,15 @@ package body Memory_Usage_Views.Providers is
|
||||
---------------------
|
||||
|
||||
procedure Register_Module
|
||||
(Kernel : not null access GPS.Kernel.Kernel_Handle_Record'Class)
|
||||
is
|
||||
pragma Unreferenced (Kernel);
|
||||
(Kernel : not null access GPS.Kernel.Kernel_Handle_Record'Class) is
|
||||
begin
|
||||
Compilation_Finished_Hook.Add (new On_Compilation_Finished);
|
||||
Project_View_Changed_Hook.Add (new On_Project_View_Changed);
|
||||
Kernel_Callback.Connect
|
||||
(Widget => Get_MDI (Kernel),
|
||||
Name => Gtkada.MDI.Signal_Child_Added,
|
||||
Cb => MDI_Child_Added'Access,
|
||||
User_Data => Kernel_Handle (Kernel));
|
||||
end Register_Module;
|
||||
|
||||
end Memory_Usage_Views.Providers;
|
||||
|
||||
@@ -308,11 +308,11 @@ package body Memory_Usage_Views.Scripts is
|
||||
Used_Size => 0.0,
|
||||
Sections => <>);
|
||||
begin
|
||||
-- If the memory region's length is equal to -1, it means
|
||||
-- that it's unknown for the linker: set it to Integer'Last
|
||||
-- If the memory region's length is negative, it means
|
||||
-- that it's unknown for the linker: set it to Float'Last
|
||||
-- to keep percentages etc. The view will set the length
|
||||
-- to 'unknown' after.
|
||||
if Memory_Region.Length = -1.0 then
|
||||
if Memory_Region.Length < 0.0 then
|
||||
Memory_Region.Length := Float'Last;
|
||||
end if;
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ xml = """
|
||||
GPS.current_context())" />
|
||||
"""
|
||||
|
||||
PARSING_ERROR_MSG = "Exception while parsing map file:"
|
||||
|
||||
|
||||
@core.register_memory_usage_provider("LD")
|
||||
class LD(core.MemoryUsageProvider):
|
||||
@@ -143,7 +145,12 @@ class LD(core.MemoryUsageProvider):
|
||||
region_addr = int(region[1], 16)
|
||||
region_size = region[2]
|
||||
|
||||
if addr >= region_addr and addr < (region_addr + region_size):
|
||||
# Check if the section's address is contained in the region's
|
||||
# range. Consider that it's the case when a region has a negative
|
||||
# size, which means that its size is an unknown for the linker.
|
||||
if addr >= region_addr and (
|
||||
region_size < 0.0 or addr < (region_addr + region_size)
|
||||
):
|
||||
return region[0]
|
||||
|
||||
return ""
|
||||
@@ -180,7 +187,22 @@ class LD(core.MemoryUsageProvider):
|
||||
|
||||
m = region_r.search(line)
|
||||
if m:
|
||||
return (m.group("name"), m.group("origin"), int(m.group("length"), 16))
|
||||
name = m.group("name")
|
||||
origin = m.group("origin")
|
||||
length = m.group("length")
|
||||
|
||||
# Memory regions that have a '0xffffffffffffffff' have an unknown
|
||||
# size for the linker: in that case set it to a negative size to
|
||||
# avoid possible overflows when converting to C types.
|
||||
# The Memory Usage View will then set this region's size to 'unknown'
|
||||
# when displaying it.
|
||||
length = (
|
||||
float(int(length, 16))
|
||||
if not length.startswith("0xffffffffffffffff")
|
||||
else -1.0
|
||||
)
|
||||
|
||||
return (name, origin, length)
|
||||
else:
|
||||
return None
|
||||
|
||||
@@ -290,12 +312,20 @@ class LD(core.MemoryUsageProvider):
|
||||
|
||||
sections = [s for s in sections if is_section_allocated(s)]
|
||||
|
||||
GPS.Console().write("regions: %s\n" % str(regions))
|
||||
GPS.Console().write("sections: %s\n" % str(sections))
|
||||
|
||||
visitor.on_memory_usage_data_fetched(regions, sections, modules)
|
||||
|
||||
except Exception:
|
||||
logger = GPS.Logger("GPS.MEMORY_USAGE.SCRIPTS.LD")
|
||||
logger.log("Exception caught while parsing ld's map file:")
|
||||
logger.log(traceback.format_exc())
|
||||
tb = traceback.format_exc()
|
||||
GPS.Logger("MEMORY_USAGE.SCRIPTS.LD").log(PARSING_ERROR_MSG)
|
||||
GPS.Logger("MEMORY_USAGE.SCRIPTS.LD").log(tb)
|
||||
|
||||
# Log the exception in the Messages view if we are running the testsuite
|
||||
if GPS.Logger("TESTSUITE"):
|
||||
GPS.Console().write("%s\n" % PARSING_ERROR_MSG)
|
||||
GPS.Console().write(tb)
|
||||
|
||||
|
||||
GPS.parse_xml(xml)
|
||||
|
||||
@@ -237,7 +237,7 @@ END GROUP
|
||||
.rodata 0x00000000000085d8 0x139
|
||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||
.rodata 0x00000000000085d8 0xb main_2.o
|
||||
*fill* 0x00000000000085e3 0x1
|
||||
*fill* 0x00000000000085e3 0x1
|
||||
.rodata 0x00000000000085e4 0x3c b__main_2.o
|
||||
0x00000000000085ec __gnat_version
|
||||
0x0000000000008614 __gnat_ada_main_program_name
|
||||
@@ -251,7 +251,7 @@ END GROUP
|
||||
0x000000000000867c test__my_typeT
|
||||
.rodata.__gnat_last_chance_handler.str1.4
|
||||
0x0000000000008690 0x5a /home/leonardo/Development/releases/gnatpro-arm-elf-21.2/arm-eabi/lib/gnat/zfp-cortex-m4/adalib/libgnat.a(a-elchha.o)
|
||||
*fill* 0x00000000000086ea 0x2
|
||||
*fill* 0x00000000000086ea 0x2
|
||||
.rodata 0x00000000000086ec 0x18 /home/leonardo/Development/releases/gnatpro-arm-elf-21.2/arm-eabi/lib/gnat/zfp-cortex-m4/adalib/libgnat.a(a-elchha.o)
|
||||
.rodata 0x0000000000008704 0xd /home/leonardo/Development/releases/gnatpro-arm-elf-21.2/arm-eabi/lib/gnat/zfp-cortex-m4/adalib/libgnat.a(s-secsta.o)
|
||||
|
||||
@@ -393,7 +393,7 @@ END GROUP
|
||||
0x000000000001872a 0x1 /home/leonardo/Development/releases/gnatpro-arm-elf-21.2/arm-eabi/lib/gnat/zfp-cortex-m4/adalib/libgnat.a(s-textio.o)
|
||||
0x000000000001872a system__text_io__initialized
|
||||
.data 0x000000000001872b 0x0 /home/leonardo/Development/releases/gnatpro-arm-elf-21.2/arm-eabi/lib/gnat/zfp-cortex-m4/adalib/libgnat.a(s-semiho.o)
|
||||
*fill* 0x000000000001872b 0x1
|
||||
*fill* 0x000000000001872b 0x1
|
||||
.data.system__semihosting_E
|
||||
0x000000000001872c 0x2 /home/leonardo/Development/releases/gnatpro-arm-elf-21.2/arm-eabi/lib/gnat/zfp-cortex-m4/adalib/libgnat.a(s-semiho.o)
|
||||
0x000000000001872c system__semihosting_E
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
project Default is
|
||||
|
||||
for Target use "riscv32-elf";
|
||||
for Runtime ("ada") use "light-hifive1";
|
||||
|
||||
end Default;
|
||||
@@ -0,0 +1,10 @@
|
||||
project Fake_Executables is
|
||||
for Source_Dirs use ("src");
|
||||
for Object_Dir use "obj";
|
||||
for Exec_Dir use "bin";
|
||||
for Main use ("riscv32_elf_ld.adb");
|
||||
|
||||
package Builder is
|
||||
for Executable ("riscv32_elf_ld.adb") use "riscv32-elf-ld";
|
||||
end Builder;
|
||||
end Fake_Executables;
|
||||
@@ -0,0 +1,24 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- GNAT Studio --
|
||||
-- --
|
||||
-- Copyright (C) 2020-2023, AdaCore --
|
||||
-- --
|
||||
-- This is free software; you can redistribute it and/or modify it under --
|
||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. This software is distributed in the hope that it will be useful, --
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- --
|
||||
-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
|
||||
-- License for more details. You should have received a copy of the GNU --
|
||||
-- General Public License distributed with this software; see file --
|
||||
-- COPYING3. If not, go to http://www.gnu.org/licenses for a complete copy --
|
||||
-- of the license. --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
|
||||
procedure Riscv32_Elf_Ld is
|
||||
begin
|
||||
Put_Line
|
||||
("-M, --print-map Print map file on standard output");
|
||||
end Riscv32_Elf_Ld;
|
||||
@@ -0,0 +1,4 @@
|
||||
procedure Main is
|
||||
begin
|
||||
null;
|
||||
end Main;
|
||||
479
testsuite/tests/gs.402.memory_usage.too_large_int/map.txt
Executable file
479
testsuite/tests/gs.402.memory_usage.too_large_int/map.txt
Executable file
@@ -0,0 +1,479 @@
|
||||
Archive member included to satisfy reference by file (symbol)
|
||||
|
||||
C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o (__gnat_last_chance_handler)
|
||||
C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o) (gnat__io__put__2)
|
||||
C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-macres.o)
|
||||
C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o) (__gnat_stop)
|
||||
C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o) (system__text_io__initialize)
|
||||
C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(start-rom.o)
|
||||
(_start_rom)
|
||||
C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o (__addsf3)
|
||||
C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o (__eqsf2)
|
||||
C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o) (__clzsi2)
|
||||
C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o) (__clz_tab)
|
||||
|
||||
There are no discarded input sections
|
||||
|
||||
Memory Configuration
|
||||
|
||||
Name Origin Length Attributes
|
||||
flash 0x20400000 0x20000000 axrl!w
|
||||
ram 0x80000000 0x00004000 axw!rl
|
||||
*default* 0x00000000 0xffffffff
|
||||
|
||||
Linker script and memory map
|
||||
|
||||
LOAD test_sensors.o
|
||||
LOAD b__test_sensors.o
|
||||
LOAD C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
LOAD C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
LOAD C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a
|
||||
LOAD C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a
|
||||
LOAD C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc_eh.a
|
||||
0x00000800 _DEFAULT_STACK_SIZE = 0x800
|
||||
|
||||
.text 0x20400000 0x9ea
|
||||
*(SORT_NONE(.start))
|
||||
.start 0x20400000 0x60 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(start-rom.o)
|
||||
0x20400000 _start_rom
|
||||
0x20400050 _exit
|
||||
0x20400050 __gnat_exit
|
||||
*(.text .text.* .gnu.linkonce.t*)
|
||||
.text 0x20400060 0x24 test_sensors.o
|
||||
0x20400060 _ada_test_sensors
|
||||
.text 0x20400084 0x5a b__test_sensors.o
|
||||
0x20400084 adainit
|
||||
0x204000bc main
|
||||
.text 0x204000de 0x10e C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
0x204000de sensors__sensorIP
|
||||
0x20400118 sensors___size
|
||||
0x20400132 sensors__Oeq
|
||||
0x20400160 sensors___assign
|
||||
0x20400190 sensors__notify_probe
|
||||
0x204001d2 sensors__n_probes_on
|
||||
.text 0x204001ec 0x128 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
0x204001ec sensors__pressure_sensors__pressure_sensorIP
|
||||
0x20400240 sensors__pressure_sensors___size__2
|
||||
0x2040025a sensors__pressure_sensors__Oeq__2
|
||||
0x204002a2 sensors__pressure_sensors___assign__2
|
||||
0x204002d6 sensors__pressure_sensors__probe
|
||||
.text 0x20400314 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
.text.ada__exceptions__last_chance_handler__put.0
|
||||
0x20400314 0x2c C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
.text.__gnat_last_chance_handler
|
||||
0x20400340 0x60 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
0x20400340 __gnat_last_chance_handler
|
||||
.text 0x204003a0 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
.text.gnat__io__put__2
|
||||
0x204003a0 0x38 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
0x204003a0 gnat__io__put__2
|
||||
.text.gnat__io__new_line
|
||||
0x204003d8 0x26 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
0x204003d8 gnat__io__new_line
|
||||
.text.gnat__io__put
|
||||
0x204003fe 0x86 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
0x204003fe gnat__io__put
|
||||
.text.gnat__io__put__3
|
||||
0x20400484 0x36 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
0x20400484 gnat__io__put__3
|
||||
.text.gnat__io__put_line
|
||||
0x204004ba 0x38 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
0x204004ba gnat__io__put_line
|
||||
.text 0x204004f2 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-macres.o)
|
||||
.text.__gnat_stop
|
||||
0x204004f2 0x6 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-macres.o)
|
||||
0x204004f2 __gnat_stop
|
||||
.text.abort 0x204004f8 0x6 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-macres.o)
|
||||
0x204004f8 abort
|
||||
.text 0x204004fe 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
.text.system__text_io__get
|
||||
0x204004fe 0x6 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
0x204004fe system__text_io__get
|
||||
.text.system__text_io__initialize
|
||||
0x20400504 0x50 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
0x20400504 system__text_io__initialize
|
||||
.text.system__text_io__is_rx_ready
|
||||
0x20400554 0x20 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
0x20400554 system__text_io__is_rx_ready
|
||||
.text.system__text_io__is_tx_ready
|
||||
0x20400574 0xe C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
0x20400574 system__text_io__is_tx_ready
|
||||
.text.system__text_io__put
|
||||
0x20400582 0xa C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
0x20400582 system__text_io__put
|
||||
.text.system__text_io__use_cr_lf_for_new_line
|
||||
0x2040058c 0x4 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
0x2040058c system__text_io__use_cr_lf_for_new_line
|
||||
.text 0x20400590 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(start-rom.o)
|
||||
.text 0x20400590 0x392 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
0x20400590 __addsf3
|
||||
.text 0x20400922 0x5a C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
0x20400922 __eqsf2
|
||||
0x20400922 __nesf2
|
||||
.text 0x2040097c 0x6e C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
0x2040097c __clzsi2
|
||||
.text 0x204009ea 0x0 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
*(.gnu.warning)
|
||||
|
||||
.rodata 0x204009ec 0x2a4
|
||||
*(.rdata)
|
||||
*(.rodata .rodata.* .gnu.linkonce.r*)
|
||||
.rodata 0x204009ec 0x3a b__test_sensors.o
|
||||
0x204009ec __gnat_version
|
||||
0x20400a14 __gnat_ada_main_program_name
|
||||
*fill* 0x20400a26 0x2
|
||||
.rodata 0x20400a28 0x70 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
0x20400a34 sensors__sensorE9s
|
||||
0x20400a44 sensors__sensorB13s
|
||||
0x20400a60 sensors__sensorR11s___UNC
|
||||
0x20400a84 sensors__sensorT
|
||||
.rodata 0x20400a98 0x88 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
0x20400a98 sensors__pressure_sensors__pressure_sensorE9s
|
||||
0x20400ac4 sensors__pressure_sensors__pressure_sensorB13s
|
||||
0x20400ae4 sensors__pressure_sensors__pressure_sensorR11s___UNC
|
||||
0x20400b08 sensors__pressure_sensors__pressure_sensorT
|
||||
.rodata.__gnat_last_chance_handler.str1.4
|
||||
0x20400b20 0x6f C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
0x6b (size before relaxing)
|
||||
*fill* 0x20400b8f 0x1
|
||||
.rodata 0x20400b90 0x100 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
0x20400b90 __clz_tab
|
||||
0x20400c90 . = ALIGN (0x4)
|
||||
0x20400c90 __rom_end = .
|
||||
|
||||
.data 0x80000000 0x0 load address 0x20400c90
|
||||
0x80000000 __data_start = .
|
||||
*(.data .data.* .gnu.linkonce.d*)
|
||||
.data 0x80000000 0x0 test_sensors.o
|
||||
.data 0x80000000 0x0 b__test_sensors.o
|
||||
.data 0x80000000 0x0 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.data 0x80000000 0x0 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.data 0x80000000 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
.data 0x80000000 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
.data 0x80000000 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-macres.o)
|
||||
.data 0x80000000 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
.data 0x80000000 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(start-rom.o)
|
||||
.data 0x80000000 0x0 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.data 0x80000000 0x0 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.data 0x80000000 0x0 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.data 0x80000000 0x0 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
|
||||
.srodata 0x80000000 0x3c load address 0x20400c90
|
||||
0x80000800 PROVIDE (__global_pointer$ = (. + 0x800))
|
||||
*(.srodata.cst16)
|
||||
*(.srodata.cst8)
|
||||
*(.srodata.cst4)
|
||||
*(.srodata.cst2)
|
||||
*(.srodata .srodata.*)
|
||||
.srodata 0x80000000 0x4 b__test_sensors.o
|
||||
0x80000000 __gnat_version_address
|
||||
.srodata 0x80000004 0xc C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
0x80000004 sensors__sensorY
|
||||
0x80000008 sensors__sensorP
|
||||
0x8000000c sensors__sensorR11s
|
||||
.srodata 0x80000010 0xc C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
0x80000010 sensors__pressure_sensors__pressure_sensorY
|
||||
0x80000014 sensors__pressure_sensors__pressure_sensorP
|
||||
0x80000018 sensors__pressure_sensors__pressure_sensorR11s
|
||||
.srodata 0x8000001c 0x20 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
|
||||
.sdata 0x8000003c 0x16 load address 0x20400ccc
|
||||
*(.sdata .sdata.*)
|
||||
.sdata 0x8000003c 0x2 b__test_sensors.o
|
||||
0x8000003c ada_main_E
|
||||
.sdata 0x8000003e 0x2 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
0x8000003e sensors_E
|
||||
.sdata 0x80000040 0x8 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
0x80000040 sensors__pressure_sensors_E
|
||||
.sdata.ada__exceptions__last_chance_handler_E
|
||||
0x80000048 0x2 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
0x80000048 ada__exceptions__last_chance_handler_E
|
||||
.sdata.gnat__io_E
|
||||
0x8000004a 0x2 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
0x8000004a gnat__io_E
|
||||
.sdata.system__machine_reset_E
|
||||
0x8000004c 0x2 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-macres.o)
|
||||
0x8000004c system__machine_reset_E
|
||||
.sdata.system__text_io__last_rx
|
||||
0x8000004e 0x1 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
.sdata.system__text_io__initialized
|
||||
0x8000004f 0x1 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
0x8000004f system__text_io__initialized
|
||||
.sdata.system__text_io_E
|
||||
0x80000050 0x2 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
0x80000050 system__text_io_E
|
||||
*(.gnu.linkonce.s.*)
|
||||
|
||||
.sdata2
|
||||
*(.sdata2 .sdata2.*)
|
||||
*(.gnu.linkonce.s2.*)
|
||||
0x80000052 __data_end = .
|
||||
0x00000014 __data_words = ((__data_end - __data_start) >> 0x2)
|
||||
0x20400c90 __data_load = LOADADDR (.data)
|
||||
|
||||
.bss 0x80000052 0x80e load address 0x20400ce2
|
||||
0x80000058 . = ALIGN (0x8)
|
||||
*fill* 0x80000052 0x6
|
||||
0x80000058 __bss_start = .
|
||||
*(.sbss*)
|
||||
*(.gnu.linkonce.sb.*)
|
||||
*(.bss .bss.*)
|
||||
.bss 0x80000058 0x0 test_sensors.o
|
||||
.bss 0x80000058 0x0 b__test_sensors.o
|
||||
.bss 0x80000058 0x0 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.bss 0x80000058 0x0 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.bss 0x80000058 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
.bss 0x80000058 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
.bss 0x80000058 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-macres.o)
|
||||
.bss 0x80000058 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
.bss 0x80000058 0x0 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(start-rom.o)
|
||||
.bss 0x80000058 0x0 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.bss 0x80000058 0x0 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.bss 0x80000058 0x0 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.bss 0x80000058 0x0 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
*(.gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
0x80000058 __interrupt_stack_start = .
|
||||
*(.interrupt_stacks)
|
||||
0x80000060 . = ALIGN (0x10)
|
||||
*fill* 0x80000058 0x8
|
||||
0x80000060 __interrupt_stack_end = .
|
||||
0x80000060 __stack_start = .
|
||||
0x80000860 . = (. + DEFINED (__stack_size)?__stack_size:_DEFAULT_STACK_SIZE)
|
||||
*fill* 0x80000060 0x800
|
||||
0x80000860 . = ALIGN (0x10)
|
||||
0x80000860 __stack_end = .
|
||||
0x80000860 _end = .
|
||||
0x80000860 __heap_start = .
|
||||
0x80004000 __heap_end = (ORIGIN (ram) + LENGTH (ram))
|
||||
0x80000860 __bss_end = .
|
||||
0x00000202 __bss_words = ((__bss_end - __bss_start) >> 0x2)
|
||||
|
||||
.debug
|
||||
*(.debug)
|
||||
|
||||
.line
|
||||
*(.line)
|
||||
|
||||
.debug_srcinfo
|
||||
*(.debug_srcinfo)
|
||||
|
||||
.debug_sfnames
|
||||
*(.debug_sfnames)
|
||||
|
||||
.debug_aranges 0x00000000 0xf8
|
||||
*(.debug_aranges)
|
||||
.debug_aranges
|
||||
0x00000000 0x20 test_sensors.o
|
||||
.debug_aranges
|
||||
0x00000020 0x20 b__test_sensors.o
|
||||
.debug_aranges
|
||||
0x00000040 0x20 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.debug_aranges
|
||||
0x00000060 0x20 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.debug_aranges
|
||||
0x00000080 0x20 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.debug_aranges
|
||||
0x000000a0 0x20 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.debug_aranges
|
||||
0x000000c0 0x20 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.debug_aranges
|
||||
0x000000e0 0x18 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
|
||||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info 0x00000000 0xce9
|
||||
*(.debug_info .gnu.linkonce.wi.*)
|
||||
.debug_info 0x00000000 0x10b test_sensors.o
|
||||
.debug_info 0x0000010b 0x123 b__test_sensors.o
|
||||
.debug_info 0x0000022e 0x1cc C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.debug_info 0x000003fa 0x1eb C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.debug_info 0x000005e5 0x2ec C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.debug_info 0x000008d1 0x1fe C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.debug_info 0x00000acf 0x142 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.debug_info 0x00000c11 0xd8 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
|
||||
.debug_abbrev 0x00000000 0x813
|
||||
*(.debug_abbrev)
|
||||
.debug_abbrev 0x00000000 0xe9 test_sensors.o
|
||||
.debug_abbrev 0x000000e9 0xf3 b__test_sensors.o
|
||||
.debug_abbrev 0x000001dc 0x12a C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.debug_abbrev 0x00000306 0x131 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.debug_abbrev 0x00000437 0x164 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.debug_abbrev 0x0000059b 0x13e C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.debug_abbrev 0x000006d9 0xca C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.debug_abbrev 0x000007a3 0x70 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
|
||||
.debug_line 0x00000000 0x152c
|
||||
*(.debug_line .debug_line.* .debug_line_end)
|
||||
.debug_line 0x00000000 0x76 test_sensors.o
|
||||
.debug_line 0x00000076 0xad b__test_sensors.o
|
||||
.debug_line 0x00000123 0xb6 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.debug_line 0x000001d9 0x8f C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.debug_line 0x00000268 0xeef C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.debug_line 0x00001157 0x281 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.debug_line 0x000013d8 0x115 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.debug_line 0x000014ed 0x3f C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
|
||||
.debug_frame 0x00000000 0x2e0
|
||||
*(.debug_frame)
|
||||
.debug_frame 0x00000000 0x38 test_sensors.o
|
||||
.debug_frame 0x00000038 0x5c b__test_sensors.o
|
||||
.debug_frame 0x00000094 0xec C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.debug_frame 0x00000180 0xd0 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.debug_frame 0x00000250 0x50 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.debug_frame 0x000002a0 0x20 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.debug_frame 0x000002c0 0x20 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
|
||||
.debug_str 0x00000000 0x8a5
|
||||
*(.debug_str)
|
||||
.debug_str 0x00000000 0x8a5 test_sensors.o
|
||||
0x25b (size before relaxing)
|
||||
.debug_str 0x000008a5 0x29f b__test_sensors.o
|
||||
.debug_str 0x000008a5 0x2e4 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.debug_str 0x000008a5 0x36e C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.debug_str 0x000008a5 0x25d C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.debug_str 0x000008a5 0x190 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.debug_str 0x000008a5 0x1a9 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.debug_str 0x000008a5 0x18c C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
|
||||
.debug_loc
|
||||
*(.debug_loc)
|
||||
|
||||
.debug_macinfo
|
||||
*(.debug_macinfo)
|
||||
|
||||
.debug_weaknames
|
||||
*(.debug_weaknames)
|
||||
|
||||
.debug_funcnames
|
||||
*(.debug_funcnames)
|
||||
|
||||
.debug_typenames
|
||||
*(.debug_typenames)
|
||||
|
||||
.debug_varnames
|
||||
*(.debug_varnames)
|
||||
|
||||
.debug_pubtypes
|
||||
*(.debug_pubtypes)
|
||||
|
||||
.debug_ranges
|
||||
*(.debug_ranges)
|
||||
|
||||
.debug_addr
|
||||
*(.debug_addr)
|
||||
|
||||
.debug_line_str
|
||||
0x00000000 0x355
|
||||
*(.debug_line_str)
|
||||
.debug_line_str
|
||||
0x00000000 0x355 test_sensors.o
|
||||
0x1c9 (size before relaxing)
|
||||
.debug_line_str
|
||||
0x00000355 0x147 b__test_sensors.o
|
||||
.debug_line_str
|
||||
0x00000355 0x1a8 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.debug_line_str
|
||||
0x00000355 0x1f8 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.debug_line_str
|
||||
0x00000355 0x106 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.debug_line_str
|
||||
0x00000355 0x113 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.debug_line_str
|
||||
0x00000355 0xfa C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.debug_line_str
|
||||
0x00000355 0xfa C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
|
||||
.debug_loclists
|
||||
0x00000000 0x826
|
||||
*(.debug_loclists)
|
||||
.debug_loclists
|
||||
0x00000000 0x734 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.debug_loclists
|
||||
0x00000734 0x62 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.debug_loclists
|
||||
0x00000796 0x90 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
|
||||
.debug_macro
|
||||
*(.debug_macro)
|
||||
|
||||
.debug_names
|
||||
*(.debug_names)
|
||||
|
||||
.debug_rnglists
|
||||
0x00000000 0x174
|
||||
*(.debug_rnglists)
|
||||
.debug_rnglists
|
||||
0x00000000 0x141 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.debug_rnglists
|
||||
0x00000141 0x1d C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.debug_rnglists
|
||||
0x0000015e 0x16 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
|
||||
.comment 0x00000000 0x39
|
||||
.comment 0x00000000 0x39 test_sensors.o
|
||||
0x3a (size before relaxing)
|
||||
.comment 0x00000039 0x3a b__test_sensors.o
|
||||
.comment 0x00000039 0x3a C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.comment 0x00000039 0x3a C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.comment 0x00000039 0x3a C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
.comment 0x00000039 0x3a C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
.comment 0x00000039 0x3a C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-macres.o)
|
||||
.comment 0x00000039 0x3a C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
.comment 0x00000039 0x3a C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.comment 0x00000039 0x3a C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.comment 0x00000039 0x3a C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.comment 0x00000039 0x3a C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
|
||||
.riscv.attributes
|
||||
0x00000000 0x34
|
||||
.riscv.attributes
|
||||
0x00000000 0x34 test_sensors.o
|
||||
.riscv.attributes
|
||||
0x00000034 0x34 b__test_sensors.o
|
||||
.riscv.attributes
|
||||
0x00000068 0x34 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors.o
|
||||
.riscv.attributes
|
||||
0x0000009c 0x34 C:\home\itmgr\ancr\src\examples\bareboard-examples\monitor\obj\sensors-pressure_sensors.o
|
||||
.riscv.attributes
|
||||
0x000000d0 0x34 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(a-elchha.o)
|
||||
.riscv.attributes
|
||||
0x00000104 0x34 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(g-io.o)
|
||||
.riscv.attributes
|
||||
0x00000138 0x34 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-macres.o)
|
||||
.riscv.attributes
|
||||
0x0000016c 0x34 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(s-textio.o)
|
||||
.riscv.attributes
|
||||
0x000001a0 0x32 C:\home\itmgr\ancr\wave\riscv32-elf-windows64\gnat\install\riscv32-elf\lib\gnat\light-hifive1\adalib\libgnat.a(start-rom.o)
|
||||
.riscv.attributes
|
||||
0x000001d2 0x34 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(addsf3.o)
|
||||
.riscv.attributes
|
||||
0x00000206 0x34 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(eqsf2.o)
|
||||
.riscv.attributes
|
||||
0x0000023a 0x34 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clzsi2.o)
|
||||
.riscv.attributes
|
||||
0x0000026e 0x34 C:/home/itmgr/ancr/wave/riscv32-elf-windows64/gnat/install/bin/../lib/gcc/riscv32-elf/13.3.1/rv32imac/ilp32\libgcc.a(_clz.o)
|
||||
|
||||
.debug_str_offsets
|
||||
*(.debug_str_offsets)
|
||||
|
||||
.debug_sup
|
||||
*(.debug_sup)
|
||||
|
||||
.gnu.attributes
|
||||
*(.gnu.attributes)
|
||||
|
||||
/DISCARD/
|
||||
*(.note.GNU-stack)
|
||||
*(.gnu_debuglink)
|
||||
*(.gnu.lto_*)
|
||||
OUTPUT(test_sensors elf32-littleriscv)
|
||||
@@ -0,0 +1,4 @@
|
||||
gprbuild -P ./install/fake_executables.gpr -p -q
|
||||
PATH=`pwd`/install/bin:$PATH
|
||||
export PATH
|
||||
$GPS --load=python:test.py
|
||||
46
testsuite/tests/gs.402.memory_usage.too_large_int/test.py
Normal file
46
testsuite/tests/gs.402.memory_usage.too_large_int/test.py
Normal file
@@ -0,0 +1,46 @@
|
||||
"""
|
||||
This test checks that the ld plugin hanles unknown memory regions
|
||||
in the generated map file.
|
||||
"""
|
||||
|
||||
from time import time
|
||||
import GPS
|
||||
from gs_utils.internal.utils import *
|
||||
|
||||
PARSING_ERROR_MSG = "Exception while parsing map file:"
|
||||
|
||||
|
||||
@run_test_driver
|
||||
def run_test():
|
||||
# Open the Memory Usage View
|
||||
GPS.execute_action("open Memory Usage")
|
||||
yield wait_for_mdi_child("Memory Usage")
|
||||
|
||||
# Get Memory Usage view's model
|
||||
memory_usage_view = GPS.MDI.get("Memory Usage").get_child().pywidget()
|
||||
tree = get_widgets_by_type(Gtk.TreeView, memory_usage_view)[0]
|
||||
tree.expand_all()
|
||||
model = tree.get_model()
|
||||
|
||||
# Verify that we have the 'ram' region: this means that we did not
|
||||
# get any exception while parsing the map file
|
||||
gps_assert(
|
||||
model.get_value(model.get_iter_first(), 1),
|
||||
"ram",
|
||||
"The Memory Usage View is empty while it should not",
|
||||
)
|
||||
|
||||
# Check its size too
|
||||
gps_assert(
|
||||
model.get_value(model.get_iter_first(), 3),
|
||||
"2.09 KB / 16 KB",
|
||||
"Wrong size computed for the 'ram' region",
|
||||
)
|
||||
|
||||
# Check that we don't have any parsing error message in the
|
||||
# Messages view
|
||||
gps_assert(
|
||||
PARSING_ERROR_MSG not in GPS.Console().get_text(),
|
||||
True,
|
||||
"Parsing error message found in the Messages view",
|
||||
)
|
||||
@@ -0,0 +1 @@
|
||||
title: 'gs.402.memory_usage.too_large_int'
|
||||
Reference in New Issue
Block a user