RE: [hatari-devel] Is it me or the symbols prg option is broken ?

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hi Eero,

Actually I tried with and without "symbols prg" and te result is the same.
Attached you can find output for "symbols prg" in wait.ini


Regards
Cyprian



> -----Original Message-----
> From: Eero Tamminen
> Sent: 1 May 2015 01:02
> To: hatari-devel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [hatari-devel] Is it me or the symbols prg option is broken ?
> 
> Hi,
> 
> On keskiviikko 29 huhtikuu 2015, Konador, Cyprian wrote:
> > Files sent,
> 
> By adding "symbols prg" as first line to "wait.ini" file [1], everything
> works fine for me, with all of the binaries you provided.
> 
> Btw. I also like to trace GEMDOS operations to see how things process:
> ------- wait.ini --------
> symbols prg
> trace gemdos
> b PC = mainloop :once :trace :file trace.ini
> -------------------------
> 
> Because in your case there's a crash before next VBL and program terminates
> before breakpoint for the VBL, there aren't anymore:
> - valid debug symbols when profile is saved (they're removed at Pterm)
> - profile doesn't include program TEXT section address, so that you could
> give debug symbols to profile post-processor
> 
> => I would recommend setting profile save breakpoint also for Pterm:
> ----- trace.ini ---------
> profile on
> b VBL = "VBL+1" :trace :file disable.ini
> # save profile also on crash & Pterm
> b GemdosOpcode = 0x4C :trace :file disable.ini
> -------------------------
> 
> Attached is graph of:
> 
> 	# get the profile
> 	hatari --parse break.ini bt4pc_dx.prg
> 
> 	# get symbols for profile post-processing
> 	gst2ascii bt4pc_dx.prg > symbols.txt
> 
> 	# post-process profile, output top-lists & callgraphs
> 	hatari_profile.py -stpg -r symbols.txt --compact myprofile.txt
> 
> 	# convert callgraph to SVG
> 	dot -Tsvg myprofile-2.dot  > myprofile-cycles.svg
> 
> Attached SVG file can be viewed with Browser.
> 
> (And as I stated, program crashes before next VBL, so it's not full frame..)
> 
> 
> 	- Eero
> 
> [1] symbols are loaded automatically only when Hatari drops you to debugger
> prompt, but that doesn't happen with breakpoints having ":trace" option.
> With them you need to tell debugger to load the symbols.
> 
> 
> > Thanks for help
> >
> > Regards
> > Cyprian
> >
> > > -----Original Message-----
> > > From: Eero Tamminen
> > > Sent: 29 April 2015 22:21
> > > To: hatari-devel@xxxxxxxxxxxxxxxxxxx
> > > Subject: Re: [hatari-devel] Is it me or the symbols prg option is
> > > broken ?
> > >
> > > Hi,
> > >
> > > On keskiviikko 29 huhtikuu 2015, Konador, Cyprian wrote:
> > > > Hmm, I'm a bit confused.
> > > > They works fine from desktop, they have 0x601A in the header and also
> > > > valid debug symbols (normal or extended as I described below).
> > >
> > > Maybe it's a Windows issue.  Could you try changing fopen() "r"
> > > argument to "rb" in src/debug/symbols.c?
> > >
> > > If that doesn't help, could you send the binary to me, so that I can
> > > check it?
> > >
> > > 	- Eero
> > >
> > > > Thanks
> > > >
> > > > Regards
> > > > Cyprian
> > > >
> > > > > -----Original Message-----
> > > > > From: Eero Tamminen,
> > > > > Sent: 29 April 2015 19:07
> > > > > To: hatari-devel@xxxxxxxxxxxxxxxxxxx
> > > > > Subject: Re: [hatari-devel] Is it me or the symbols prg option is
> > > > > broken ?
> > > > >
> > > > > Hi,
> > > > >
> > > > > "ASCII symbols" message means that the program header at the start
> > > > > of your binary doesn't contain the magic word (0x601A) that
> > > > > identifies it as Atari program.
> > > > >
> > > > > 	- Eero
> > > > >
> > > > > On keskiviikko 29 huhtikuu 2015, Konador, Cyprian wrote:
> > > > > > I'm trying to analyze some of code. Below you can find a complete
> > > > > > content of my parser files.
> > > > > >
> > > > > > Thanks
> > > > > >
> > > > > > Regards
> > > > > > Cyprian
> > > > > >
> > > > > >
> > > > > > TRACE.BAT
> > > > > >
> > > > > > 	hatari.exe -c cfgSTE.cfg --parse break.ini BT4PC_Dx.PRG
> > > > > >
> > > > > > BREAK.INI
> > > > > >
> > > > > > 	b GemdosOpcode = 0x3D :trace :once :file program.ini
> > > > > >
> > > > > > PROGRAM.INI
> > > > > >
> > > > > > 	b pc = TEXT :trace :once :file wait.ini
> > > > > >
> > > > > > WAIT.INI
> > > > > >
> > > > > > 	b PC = mainloop :once :trace :file trace.ini
> > > > > >
> > > > > > TRACE.INI
> > > > > >
> > > > > > 	profile on
> > > > > > 	b VBL = "VBL+1" :trace :file disable.ini
> > > > > >
> > > > > > DISABLE.INI
> > > > > >
> > > > > > 	trace none
> > > > > > 	b all
> > > > > > 	profile save myprofile.txt
> > > > > > 	q
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: Eero Tamminen
> > > > > > > Sent: 28 April 2015 20:44
> > > > > > > To: hatari-devel@xxxxxxxxxxxxxxxxxxx
> > > > > > > Subject: Re: [hatari-devel] Is it me or the symbols prg option
> > > > > > > is broken ?
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > What exactly you're doing?
> > > > > > >
> > > > > > > (binaries should be read as binary with debug symbols, not as
> > > > > > > ASCII symbol files)
> > > > > > >
> > > > > > > 	- Eero
> > > > > > >
> > > > > > > On tiistai 28 huhtikuu 2015, Konador, Cyprian wrote:
> > > > > > > > Hi All,
> > > > > > > >
> > > > > > > > I've just face an issue with symbols in Hatari 1.8.
> > > > > > > > I compiled test program with VASM and Devpac as described
> > > > > > > > below:
> > > > > > > >
> > > > > > > > Devpac-3
> > > > > > > >
> > > > > > > > 	BT4PC_Dn.PRG	Debug symbol Normal
> > > > > > > > 	BT4PC_Dx.PRG	Debug symbol Extended
> > > > > > > >
> > > > > > > > VASM
> > > > > > > >
> > > > > > > > 	BT4PC_Dx.TOS	OPT D+,X+
> > > > > > > >
> > > > > > > > All tests show me following error message:
> > > > > > > > --
> > > > > > > > Reading 'nm' style ASCII symbols from 'BT4PC_D.TOS'...
> > > > > > > > ERROR: no symbols.
> > > > > > > > ERROR: reading symbols from 'BT4PC_D.TOS' failed!
> > > > > > > > --
> > > > > > > > Reading 'nm' style ASCII symbols from 'BT4PC_Dn.PRG'...
> > > > > > > > ERROR: no symbols.
> > > > > > > > ERROR: reading symbols from 'BT4PC_Dn.PRG' failed!
> > > > > > > > --
> > > > > > > > Reading 'nm' style ASCII symbols from 'BT4PC_Dx.PRG'...
> > > > > > > > ERROR: no symbols.
> > > > > > > > ERROR: reading symbols from 'BT4PC_Dx.PRG' failed!
> > > > > > > > --
> > > > > > > >
> > > > > > > > 'PC = mainloop'
> > > > > > > >
> > > > > > > >       ^-invalid variable/register/symbol name
> > > > > > > >
> > > > > > > > Regards
> > > > > > > > Cyprian
> > > > > > > >
> > > > > > > > > -----Original Message-----
> > > > > > > > > From: Eero Tamminen
> > > > > > > > > Sent: 13 June 2014 22:26
> > > > > > > > > To: hatari-devel@xxxxxxxxxxxxxxxxxxx
> > > > > > > > > Subject: Re: [hatari-devel] Is it me or the symbols prg
> > > > > > > > > option is broken ?
> > > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > >
> > > > > > > > > On perjantai 13 kesäkuu 2014, Laurent Sallafranque wrote:
> > > > > > > > > >  > Does symbol loading work now? Le 12/06/2014 23:44,
> > > > > > > > > >  > Eero Tamminen
> > > > > > >
> > > > > > > a
> > > > > > >
> > > > > > > > > > écrit :
> > > > > > > > > >
> > > > > > > > > > Yes it works again. Great job Eero.
> > > > > > > > >
> > > > > > > > > Ok, good.
> > > > > > > > >
> > > > > > > > > I added the same fallback also for gst2ascii tool (it
> > > > > > > > > already had that, but it used it only if it detected
> > > > > > > > > program to be VBCC compiled).
> > > > > > > > >
> > > > > > > > > > What is fun is that now, I don't have to enter "symbols
> > > > > > > > > > prg", when I break the program, hatari debugger
> > > > > > > > > > immediatly loads the symbol table by itself.
> > > > > > > > >
> > > > > > > > > Yes, I think it quite handy too.  :-)
> > > > > > > > >
> > > > > > > > > 	- Eero
> > > > > > > > >
> > > > > > > > > > Laurent
> > > > > > > > > >
> > > > > > > > > > > Hi,
> > > > > > > > > > >
> > > > > > > > > > > On torstai 12 kesäkuu 2014, Laurent Sallafranque wrote:
> > > > > > > > > > >> Here is what I get :
> > > > > > > > > > >>   > symbols prg
> > > > > > > > > > >>
> > > > > > > > > > >> Reading symbols from program
> > >
> > >
> '/media/Win_NTFS/Jeux/Atari/DiskDur.FAL/Thadoss/RACER/RACER/RACER.P
> > >
> > > > > > > > > RG'
> > > > > > > > >
> > > > > > > > > > >> symbol table...
> > > > > > > > > > >> 0x7 program flags, reloc=0, TOS executable, DRI / GST
> > > > > > > > > > >> symbol table. Trying to load symbol table at offset
> > > > > > > > > > >> 0x8cee0... WARNING: ignoring symbol 'DTA' of B type in
> > > > > > > > > > >> slot 1 with invalid offset 0x183b40 (>= 0xf6cab).
> > > > > > > > > > >> WARNING: ignoring symbol 'MAXY' of D type in slot 6
> > > > > > > > > > >> with invalid offset 0x104114 (>= 0xe8e4b).
> > > > > > > > > > >> ERROR: too many invalid offsets, skipping rest of
> > > > > > > > > > >> symbols!
> > > > > > > > > > >
> > > > > > > > > > > Hm.  Devpac could be using TEXT-relative symbol offsets
> > > > > > > > > > > in its symbol table.  Whereas e.g. GCC uses offsets
> > > > > > > > > > > that are relative to the section where those symbols
> > > > > > > > > > > are, and so do some other things (for which I fixed
> > > > > > > > > > > Hatari a while ago).
> > > > > > > > > > >
> > > > > > > > > > > I added code to Hatari to try to load the DATA & BSS
> > > > > > > > > > > symbols as TEXT relative if loading them as relative to
> > > > > > > > > > > their own section fails (i.e. offsets would be outside
> > > > > > > > > > > of that section).
> > > > > > > > > > >
> > > > > > > > > > > Does symbol loading work now?
> > > > > > > > > > >
> > > > > > > > > > > If not, please provide Hatari "info basepage" output
> > > > > > > > > > > for your program and Atari "nm" tool ouput for your
> > > > > > > > > > > binary symbol table.
> > > > > > > > > > >
> > > > > > > > > > > 	- Eero
> > > > > > > > > > >
> > > > > > > > > > > PS. If somebody knows a flag in program header or DRI
> > > > > > > > > > > symbols which tells to what the offsets are supposed to
> > > > > > > > > > > be relative to, I would appreciate it.
> > > > > > > > > > >
> > > > > > > > > > >> ERROR: reading symbols from
> > >
> > >
> '/media/Win_NTFS/Jeux/Atari/DiskDur.FAL/Thadoss/RACER/RACER/RACER.P
> > >
> > > > > > > > > RG'
> > > > > > > > >
> > > > > > > > > > >> failed!
> > > > > > > > > > >> 'symbols' - load CPU symbols & their addresses
> > > > > > > > > > >> Usage:  symbols <filename|prg|addr|name|free> [<T
> > >
> > > offset>
> > >
> > > > > [<D
> > > > >
> > > > > > > > > offset>
> > > > > > > > >
> > > > > > > > > > >> <B offset>]]
> > > > > > > > > > >>
> > > > > > > > > > >>       Loads symbol names and their addresses from the
> > > > > > > > > > >>       given file. If there were previously loaded
> > > > > > > > > > >>       symbols, they're replaced.
> > > > > > > > > > >>
> > > > > > > > > > >>       Giving 'prg' instead of a file name, loads
> > > > > > > > > > >>       DRI/GST symbol table from the last program
> > > > > > > > > > >>       executed through the GEMDOS HD emulation.
> > > > > > > > > > >>
> > > > > > > > > > >>       Giving either 'name' or 'addr' instead of a file
> > > > > > > > > > >>       name, will list the currently loaded symbols.
> > > > > > > > > > >>       Giving 'free' will remove the loaded symbols.
> > > > > > > > > > >>
> > > > > > > > > > >>       If one base address/offset is given, its added
> > > > > > > > > > >>       to all addresses. If three offsets are given
> > > > > > > > > > >>       (and non-zero), they're applied to text (T),
> > > > > > > > > > >>       data (D) and BSS (B) symbols. Given offsets are
> > > > > > > > > > >>       used only when loading ASCII symbol files.
> > > > > > > > > > >>
> > > > > > > > > > >> Laurent
> > > > > > > > > > >>
> > > > > > > > > > >> Le 12/06/2014 20:24, Eero Tamminen a écrit :
> > > > > > > > > > >>> Hi,
> > > > > > > > > > >>>
> > > > > > > > > > >>> On torstai 12 kesäkuu 2014, Laurent Sallafranque
> wrote:
> > > > > > > > > > >>>> I compile Racer with the following options as I
> > > > > > > > > > >>>> always did before:
> > > > > > > > > > >>>>
> > > > > > > > > > >>>> opt    p=68030/68882,NOCASE,D+,X+
> > > > > > > > > > >>>>
> > > > > > > > > > >>>> Then, I run Racer and break it in the main menu, but
> > > > > > > > > > >>>> I get the following
> > > > > > > > > > >>>>
> > > > > > > > > > >>>> error message:
> > > > > > > > > > >>>>    > symbols prg
> > > > > > > > > > >>>>
> > > > > > > > > > >>>> ERROR: no program loaded (through GEMDOS HD
> emu)!
> > > > > > > > > > >>>
> > > > > > > > > > >>> Because autoloading of the symbols failed, Hatari
> > > > > > > > > > >>> removed
> > > > > > > > >
> > > > > > > > > information
> > > > > > > > >
> > > > > > > > > > >>> about the program path from debug symbol code.
> > > > > > > > > > >>> That's why you get this strange error on following
> > > > > > > > > > >>> "symbols prg" commands.  I commited an improvement
> > > > > > > > > > >>> which allows you
> > > > >
> > > > > seeing
> > > > >
> > > > > > > > > > >>> the errors again.
> > > > > > > > > > >>>
> > > > > > > > > > >>> What error you get from symbols autoloading?
> > > > > > > > > > >>>
> > > > > > > > > > >>> 	- Eero
> > > > > > > > > > >>>
> > > > > > > > > > >>>> Laurent
> > > > > > > > > > >>>>
> > > > > > > > > > >>>> Le 11/06/2014 23:09, Eero Tamminen a écrit :
> > > > > > > > > > >>>>> Hi,
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> On keskiviikko 11 kesäkuu 2014, Laurent
> > > > > > > > > > >>>>> Sallafranque
> > >
> > > wrote:
> > > > > > > > > > >>>>>> I can't use symbols prg with the latest release.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> What this means?
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>>> Is it me or something is broken here ?
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> Nowadays Hatari nowadays loads symbols
> > > > > > > > > > >>>>> automatically
> > >
> > > if
> > >
> > > > > > > program
> > > > > > >
> > > > > > > > > has
> > > > > > > > >
> > > > > > > > > > >>>>> them.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> Note that:
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> * with GCC you need to ask linker to generate old
> > > > > > > > > > >>>>> style (DRI) symbols.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>>      More detailed a.out format symbols you need to
> > > > > > > > > > >>>>>      output with nm and read as separate ASCII
> > > > > > > > > > >>>>>      symbols file.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> * if you're using VBCC, make sure that you use a
> > > > > > > > > > >>>>> version with fixed linker.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>>      Older VBCC linker used broken data/bss symbol
> > > > > > > > > > >>>>>      offsets. For those you need to use gst2ascii
> > > > > > > > > > >>>>>      program and load symbols as ASCII.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> 	- Eero

Hatari v1.8.0, compiled on:  Aug 22 2014, 13:20:27
Configured max Hatari resolution = 832x576, optimal for ST = 832x588
GEMDOS HDD emulation, C: <-> C:\Users\konador\Documents\_Atari\_Twardziel\A_Prog\Wachu\TriangFi.
Virtual autostart file 'DESKTOP.INF' created for 'BT4PC_DX.PRG'.
Reading debugger commands from 'break.ini'...
> b GemdosOpcode = 0x3D :trace :once :file program.ini
CPU condition breakpoint 1 with 1 condition(s) added:
	GemdosOpcode = 0x3D
-> Once, delete after breaking.
-> Trace instead of breaking, but show still hits.
-> Execute debugger commands from 'program.ini' file on hit.
No GEMDOS dir 'C:\Users\konador\Documents\_Atari\_Twardziel\A_Prog\Wachu\TriangFi\AUTO'
1. CPU breakpoint condition(s) matched 1 times.
	GemdosOpcode = 0x3D :once :trace :file program.ini
Reading debugger commands from 'program.ini'...
> b pc = TEXT :trace :once :file wait.ini
CPU condition breakpoint 2 with 1 condition(s) added:
	pc = TEXT
-> Once, delete after breaking.
-> Trace instead of breaking, but show still hits.
-> Execute debugger commands from 'wait.ini' file on hit.
Removed CPU breakpoint 1:
	GemdosOpcode = 0x3D :once :trace :file program.ini
Autostart file 'DESKTOP.INF' for 'BT4PC_DX.PRG' matched.
Autostart file removed.
1. CPU breakpoint condition(s) matched 1 times.
	pc = TEXT :once :trace :file wait.ini
Reading debugger commands from 'wait.ini'...
> symbols prg
Reading 'nm' style ASCII symbols from 'C:\Users\konador\Documents\_Atari\_Twardziel\A_Prog\Wachu\TriangFi\BT4PC_Dx.PRG'...
ERROR: no symbols.
ERROR: reading symbols from 'C:\Users\konador\Documents\_Atari\_Twardziel\A_Prog\Wachu\TriangFi\BT4PC_Dx.PRG' failed!
'symbols' - load CPU symbols & their addresses
Usage:  symbols <filename|prg|addr|name|free> [<T offset> [<D offset> <B offset>]]
	Loads symbol names and their addresses from the given file.
	If there were previously loaded symbols, they're replaced.

	Giving 'prg' instead of a file name, loads DRI/GST symbol table
	from the last program executed through the GEMDOS HD emulation.

	Giving either 'name' or 'addr' instead of a file name, will
	list the currently loaded symbols.  Giving 'free' will remove
	the loaded symbols.

	If one base address/offset is given, its added to all addresses.
	If three offsets are given (and non-zero), they're applied to
	text (T), data (D) and BSS (B) symbols.  Given offsets are used
	only when loading ASCII symbol files.
> trace gemdos
> b PC = mainloop :once :trace :file trace.ini
ERROR in tokenized string:
'PC = mainloop'
      ^-invalid variable/register/symbol name
Removed CPU breakpoint 1:
	pc = TEXT :once :trace :file wait.ini
GEMDOS 0x4A Mshrink(0x12476, 0x8012E) at PC 0xFA002A
GEMDOS 0x48 Malloc(0x10100) at PC 0xFA002A
GEMDOS 0x20 Super(0x0) at PC 0xFA002A


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/