diff options
author | Tristan Gingold <gingold@adacore.com> | 2015-11-18 21:45:45 +0100 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2015-11-19 05:47:59 +0100 |
commit | 92b0b82ea32982b94eb8bf19a0b498d92053fffe (patch) | |
tree | 70b04f103d145dc01d31870e50b5e6a654dc20e0 /src/ortho/mcode/symbolizer.ads | |
parent | ff4bc5fb13a997a1d00596578b6d7deb5c0b0da6 (diff) | |
download | ghdl-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.ads | 48 |
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; |