; --------------------------------------------------------------------------------
; @Title: Script to load driver symbols
; @Description: 
;   when installing them with devinstall,
;   and automatically stop at it's install routine.
;   Specify the driver name without .dldd extension
;   Example: do drv_debug mydrvr
; @Keywords: lynx
; @Author: DIE
; @Copyright: (C) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: drv_debug.cmm 6750 2014-04-07 21:27:07Z servera $


LOCAL &drvname &text &data &bss &install
ENTRY &drvname

 IF run()
   Break.direct
   
 IF sYmbol.EXIST(\\&drvname)
   sYmbol.Delete \\&drvname
   
 Break.Set bdv_install
 Break.Set cdv_install
 
retry:
 Go.direct
 PRINT "please install driver &drvname with devinstall"
 WAIT !run()

 &text=task.driver.text("&drvname.dldd")
 IF &text==0xffffffff
   GOTO retry

 &data=task.driver.data("&drvname.dldd")
 &bss=task.driver.bss("&drvname.dldd")

 PRINT "loading symbols of driver..."
 Data.LOAD.XCoff &drvname.dldd /NoCODE /NoClear \
    /reloc .text at &text /RELOC .data AFTER .text \
    /reloc .bss AFTER .data

 &install=task.driver.install("&drvname.dldd")
 IF &install==0
 (
    PRINT "no install routine"
    ENDDO
 )
 Break.Set &install
 
 Go.direct
 PRINT "breakpoint set on install routine"
 
 ENDDO
 
