Path: utzoo!mnetor!uunet!lll-winken!lll-lcc!ames!ucsd!sdcsvax!ucsdhub!hp-sdd!hplabs!decwrl!decvax!dartvax!eleazar!obie From: obie@eleazar.Dartmouth.EDU (Timothy D. Notestein) Newsgroups: comp.sys.amiga Subject: Re: MANX C & SDB Message-ID: <8235@eleazar.Dartmouth.EDU> Date: 23 Feb 88 21:12:18 GMT References: <6823@oberon.USC.EDU> <649@applix.UUCP> <4036@husc6.harvard.edu> <283@brambo.UUCP> <23503@hi.unm.edu> Reply-To: obie@eleazar.Dartmouth.EDU (Timothy D. Notestein) Organization: Dartmouth College, Hanover, NH Lines: 66 Keywords: C, Manx, SDB, Amiga Summary: The discovery of the Manx Source Level Debugger By the way, I HAVE received the Manx Source Level Debugger. It is truly amazing, and a very useful programming tool. It does what you would expect it to, single-stepping through the program, setting breakpoints, disassembling and viewing memory. By the way, if you are thinking of learning 68000 (10) assembly, the SDB is well worth the $75 purchase price for that feature alone! When it disassembles your running code, it displays the C statement, and then beneath it the Assembly code. It provides a wealth in variety of ways for displaying and keeping track of variables. With on-line help, the cryptic commands yield very "English" or rather, "C"-type output. In displaying structures, the output looks very similar to what you would have in a C program. It also catches gurus! Not an exactly amazing feat, and the SDB does seem to "forget" everything when this happens, but 1) you can avoid the guru, and 2) if you're familiar enough with 68000, you can get a pretty good idea of what's going on. If you don't know 68000 assembly, at least you will know where your program is going haywire. It has a built-in command line history, and you can also scroll up/down your 'output' window. Perhaps I should be calling it the diagnostic window. In any case, it's the window that talks to you. When asking SDB to display a variable this window is where the information will be displayed. There are also a wealth of "hot-keys" which require some initial memorization, but provide for a greater ease of use. What SDB is NOT: SDB is _NOT_ an interpreter. IF you were hoping that SDB provided anything like the AmigaBASIC programming environment, you are wrong. After ever change you make to your program, you will need to recompile and re-link (an aside: you must compile and link with special options). If you alter your source code after having compiled and linked, the SDB will yield unintelligable results. One things that I noticed immediately is that my program source size shrunk by about 50%. I took out all of my kprintf() statements. :-) A few comments on Manx 3.6 : it comes with another whole slew of compiling options. I won't even pretend to understand the purpose of most of them yet. The linker, or rather, actually, the assembler: we now have Amiga-compatible object files! (you have absolutely no idea how happy this makes me) They also kindly included the signal() and raise() statements to catch certain traps that might occur in your program. On signal(), however, I'm confused. Why doesn't it catch SIGINT,SIGTERM, or SIGABRT events? In writing user-friendly software, these are the events that I would be most interested in catching..? :-( As well, Manx claims that in version 3.6, they're (oops, their) code is even smaller and faster. I haven't verified this, but even if I compile a "Hello world.\n" program, I always get a link message that Layers_info structure is incomplete, or some such message. Just a quirk. To summarize: the Manx 3.6 upgrade/Source Level Debugger is WELL worth the $75 price tag. The SDB provides a most user-friendly and powerful debugger that also acts as a monitor/code-view/disassembler/Rom-WACK-type-of-program. And all of this without a 9600-baud terminal tied to yourserial port. (which would do me no good, because I write serial communications programs, and NEED that port.) The value of the 3.6 upgrade alone is more than $75, considering the compatibility that is reinstated in the Amiga world. No longer will the support programmers (a.k.a., people like Microsmiths, providing ARP) need to provide both Manx and Lattice object modules.