[comp.realtime] 80386 REMOTE DEBUGGER

eitan@mlacus.oz (Eitan Froumine) (02/24/90)

Can anybody recommend a REMOTE-DEBUGGER which allows debugging 
of 80386 embedded system from an MS-DOS PC. 

We need a debugger to support:

1. 80386 Real-Mode (RM) environment.
2. 80386 Protected-Mode (PM) environment.
3. Large code (in terms of development-tools on MS-DOS hosts) 
   which is mainly generated by MetaWare High-C, then link & 
   located by PharLap LinkLoc.  
4. Source code symbolic debugging. 

I heard about: 

1. Concurrent Sciences - SoftScopeIII/86 and SoftScopeIII/386. 
They use the Intel's iSDM monitor for RM and iMIII for PM. 
Intel does not release the source code of the monitors. 
Unfortunately iSDM has a very limited configuration options so I 
cannot tailor it to our target.

2. System & Software Inc - SoftProbe86/TX ?
   (supplied with the monitor source code). 

3. Nu-Mega - SoftICE ?

4. Datalight - C_thru_ROM ?  
   (supplied with the monitor source code). 

P.S.  Is there a special NEWS group for 80386 non-DOS/non-UNIX 
systems? 

-- 
   =  _    ___	_      _    =	___		    ___   = eitan@mlacus.oz{.au}
  =   /   /  /	/  /\__/   =   /__  . _/ _   _	   /__	 == Ph:  +61 3 823 1039
 =   / __/  /	  /   \   =   /__  /  ( (_( ( (   /	=== FAX: +61 3 267 4692
=== / == Eitan Froumine ======= Australian Centre for Unisys Software =========

hays@nosun.UUCP (Kirk Hays) (02/27/90)

CAUTION - this article could be misconstrued to be an advertisment - that
is not my intent, rather I wish to discuss a unique product that I was
involved with...

Flame if you must.

In article <361@mlacus.oz> eitan@mlacus.oz (Eitan Froumine) writes:
|
|Can anybody recommend a REMOTE-DEBUGGER which allows debugging 
|of 80386 embedded system from an MS-DOS PC. 
|
|We need a debugger to support:
|
|1. 80386 Real-Mode (RM) environment.
|2. 80386 Protected-Mode (PM) environment.
|3. Large code (in terms of development-tools on MS-DOS hosts) 
|   which is mainly generated by MetaWare High-C, then link & 
|   located by PharLap LinkLoc.  
|4. Source code symbolic debugging. 
|
|I heard about: 
|
|1. Concurrent Sciences - SoftScopeIII/86 and SoftScopeIII/386. 
|They use the Intel's iSDM monitor for RM and iMIII for PM. 
|Intel does not release the source code of the monitors. 

You can buy source code for iSDM and for iM III - not for $50, but not for 
a million, either.

|Unfortunately iSDM has a very limited configuration options so I 
|cannot tailor it to our target.

I have to admit that I am prejudiced, being the architect/project leader
for iMIII, but I honestly feel that the SoftScope/iMIII combination is one
of the sweetest source level debuggers available for protected mode 386
development of embedded systems.

Why?

	1.  iM III is small - configurations range from 8k - 16k for
	    the standard product.

	    The PROM startup code provided for this product is excellent,
	    as well.  If you can read and understand this code, then you
	    you are a i386 master - if you can write it, a guru. :-}

	2.  The iM command interface is available programatically, so
	    anything you can do from an iM command line is available
	    to your program.  This includes commands to produce physical
	    and virtual addresses from segment addresses, etc.  The command
	    set of iM is small (< 30 commands), regular, atomic, and
	    powerful.  IO redirection can be done from the command line,
	    either command by command, or permanently.

	    Commands can be added to/subtracted from the iM command set, 
	    either at configuration time, or programmatically.  This allows
	    you, for example, to have iM command parsers in your application
	    that will display an object in the most appropriate format.

	    The default command set is intended, with the exceptions of
	    registers and addresses, to be non-processor specific.

	3.  iM is very configurable - the monitor itself doesn't care where
	    in memory it is placed.  In fact, iM can be moved while running.

	    Also, you can write either your own IO system, or just device 
	    drivers, as the interfaces to replace either are specified in 
	    the manual.  Source code for sample drivers is included.

	4.  iM has the concept of "intercept", which allows you to capture
	    any breakpoint or class of breakpoints, including types of
	    breakpoints that you define yourself.

	    This capability, in addition to the programatically available
	    command set, is powerful enough to serve as the task switching
	    part of a kernel.  (that is my background - iRMX and iRMK real-
	    time kernels)  This is of theoretical interest only, however, as
	    a tailored task-switch code will beat out iM, and is easy to 
	    write, as well.

	    Using the intercept concept, I lead a project that implemented a 
	    multitasking, multiprocessor, distributed real-time debugger/
	    system monitor/profiler for multiple users, using iM as the
	    kernel for the target side of the debugger, with the 
	    communications link across the backplane.  The system
	    has since been enhanced to support debugging across networks.
	    
	    Original abilities include Static and Tasking debugging, multiple 
	    engineers debugging on the same board at the same time, and 
	    engineers debugging multiple boards simultaneously from either 
	    single debug sessions, or from multiple debug sessions.

	    You haven't lived until you've auto-single-step'ed 10 different
	    tasks on the same board, all at the same time!

	5.  Speed - iM is FAST!  iM provides commands for binary access 
	    to memory, so you don't have to go through the Hex Encode/
	    transmit/Hex Decode so common amoung hosted debuggers.  We 
	    measured download speeds of > 500 Kb (.5 Mb) per minute, over
	    38Kbaud lines.  You could, of course, use faster transmission
	    media, as the binary commands don't buffer - they go directly 
	    to memory.  This speed could also be improved by taking advantage
	    of regularities in the data stream, such as clearing memory
	    when long strings of binary zeroes are encountered, instead of
	    transmitting them. (NB - iM exposes the string primitives of
	    the i386 as commands)

	6.  iM is OMF free - it doesn't care what object module format
	    you are using, as it doesn't have a built in loader - only
	    primitives for loading memory.  An example OMF-386 absolute
	    loader is included with the product.

	7.  The iM command set is (relatively) non-processor specific.
	    It has a very RISCy feel about it, as every command is
	    a distillation of what operations are basic and common.  For
	    example, iM does not have the following instruction:

		go from xxxx:xxxxxxx til yyyy:yyyyyyyy written

	    instead, you'll see:

		bs yyyy:yyyyyyyyy write  //breakpoint set
		reg cs xxxx              //register set
		reg eip xxxxxxxx
		go                       // go has no arguments

The downside?  iM is protected mode ONLY.  iM is also painful to use, unless
you have a front-end, such as SoftScope.  Front-ends are easy to write for
iM, however, as the commands are simple, efficient, and side-effect free.

|  [other products omitted]

|P.S.  Is there a special NEWS group for 80386 non-DOS/non-UNIX 
|systems? 

comp.sys.intel is it.

Obviously, I don't speak for Intel, being just a grunt.

Hope this helped.

-- 
Kirk Hays - I'm the NRA, the NRA-ILA, the CCRKBA, the SAF, and Neal Knox
            is my lobbyist.