66 lines
2.0 KiB
Plaintext
66 lines
2.0 KiB
Plaintext
; --------------------------------------------------------------------------------
|
|
; @Title: NetBSD Symbol Autoloader Script
|
|
; @Description: Autoload script, called by TRACE32 if symbols are to be loaded
|
|
; @Keywords: netbsd
|
|
; @Author: DIE
|
|
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
|
|
; --------------------------------------------------------------------------------
|
|
; $Id: autoload.cmm 18850 2022-01-26 18:41:29Z bschroefel $
|
|
|
|
|
|
// define local macros
|
|
LOCAL &filename &basename &progname &symfilename &filepath &code &data &space
|
|
|
|
// get filename and relocation information
|
|
// these parameters are passed from TRACE32 when calling this skript
|
|
|
|
ENTRY &filename &type &code &data &space
|
|
|
|
//print "autoload: " &filename " " &type " " &code " " &data " " &space
|
|
|
|
// &filename: name of process/file
|
|
// &type: type of file: 1=process, 2=library
|
|
// &code: text segment address
|
|
// &data: data segment address
|
|
// &space: space id of process
|
|
|
|
// get symbol file name and program name
|
|
&basename=STRing.CUT(&filename,-STRing.LENgth(OS.FILE.EXTENSION(&filename)))
|
|
IF (&type==1)
|
|
&symfilename="&basename"
|
|
&progname=OS.FILE.NAME("&basename")
|
|
|
|
// delete program if it already exists or other code is already there
|
|
IF sYmbol.EXIST("\\&progname")
|
|
sYmbol.Delete \\&progname
|
|
GROUP.Delete "&progname"
|
|
|
|
// search file in source search path and open dialog when not there
|
|
&filepath=sYmbol.SEARCHFILE("&symfilename")
|
|
IF !OS.FILE("&filepath")
|
|
(
|
|
LOCAL &file
|
|
&file=OS.FILE.NAME("&symfilename")
|
|
WinPOS ,,,,,, filebox normal "Searching symbols for &filename"
|
|
DIALOG.File "*\&file"
|
|
ENTRY %LINE &filepath
|
|
IF "&filepath"==""
|
|
ENDDO
|
|
)
|
|
|
|
// load symbol file (options for sourcepath, e.g. /STRIPPART may need to be added when required)
|
|
|
|
IF (&type==1) // processes
|
|
(
|
|
Data.LOAD.Elf "&filepath" &space:0 /NoCODE /NoClear
|
|
GROUP.Create "&progname" &space:0x0--0xffffffff /GREEN
|
|
)
|
|
|
|
IF ((&type&0xffff)==2) // libraries
|
|
(
|
|
Data.LOAD.Elf "&filepath" &space:&code /NoCODE /NoClear
|
|
)
|
|
|
|
ENDDO
|
|
|