aboutsummaryrefslogtreecommitdiffstats
path: root/src/ortho/mcode/symbolizer.ads
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2015-11-18 21:45:45 +0100
committerTristan Gingold <gingold@adacore.com>2015-11-19 05:47:59 +0100
commit92b0b82ea32982b94eb8bf19a0b498d92053fffe (patch)
tree70b04f103d145dc01d31870e50b5e6a654dc20e0 /src/ortho/mcode/symbolizer.ads
parentff4bc5fb13a997a1d00596578b6d7deb5c0b0da6 (diff)
downloadghdl-92b0b82ea32982b94eb8bf19a0b498d92053fffe.tar.gz
ghdl-92b0b82ea32982b94eb8bf19a0b498d92053fffe.tar.bz2
ghdl-92b0b82ea32982b94eb8bf19a0b498d92053fffe.zip
Add symbolizer (for mcode).
Display a backtrace in case of failed check or assert failure.
Diffstat (limited to 'src/ortho/mcode/symbolizer.ads')
-rw-r--r--src/ortho/mcode/symbolizer.ads48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/ortho/mcode/symbolizer.ads b/src/ortho/mcode/symbolizer.ads
new file mode 100644
index 000000000..c31b948f4
--- /dev/null
+++ b/src/ortho/mcode/symbolizer.ads
@@ -0,0 +1,48 @@
+-- Dwarf symbolizer.
+-- Copyright (C) 2015 Tristan Gingold
+--
+-- GHDL is free software; you can redistribute it and/or modify it under
+-- the terms of the GNU General Public License as published by the Free
+-- Software Foundation; either version 2, or (at your option) any later
+-- version.
+--
+-- GHDL is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY 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
+-- along with GCC; see the file COPYING. If not, write to the Free
+-- Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+-- 02111-1307, USA.
+
+with System.Storage_Elements;
+use System; use System.Storage_Elements;
+
+package Symbolizer is
+ -- Address (in memory) and size of a debug section.
+ type Section_Content is record
+ Vaddr : Address;
+ Size : Storage_Offset;
+ end record;
+
+ -- Input sections.
+ type Dwarf_Sections is record
+ Debug_Line : Section_Content;
+ Debug_Info : Section_Content;
+ Debug_Abbrev : Section_Content;
+ end record;
+
+ -- The result, using C strings.
+ type Symbolize_Result is record
+ Filename : Address;
+ Line : Natural;
+ Subprg_Name : Address;
+ end record;
+
+ -- Translate PC to filename, line number and subprogram name using dwarf
+ -- debug infos.
+ procedure Symbolize_Address (Pc : Address;
+ Sections : Dwarf_Sections;
+ Res : out Symbolize_Result);
+end Symbolizer;