TweetFollow Us on Twitter

Debugging Pascal
Volume Number:2
Issue Number:9
Column Tag:Intermediate Mac'ing

Debugging with LightSpeed Pascal

By David E. Smith, Editor & Publisher

The Boston Expo this week promises to offer a world of new Mac products of particular interest to developers. Many of these products will revolutionize how software is done on the Mac, so it is time to take stock and review the software development process on the Mac.

Where to Begin

The first step in the product development cycle is to get information. This means getting a copy of Inside Macintosh by Addison Wesley, volumes 1-3 and soon volume 4. I prefer the hard bound all in one edition (great for dropping on bugs ). Next some Mac hardware is in order. A Mac Plus with a two meg upgrade from MacMemory is a must. A hard disk, scsi type, is helpful. The DataFrame 20 has been reported as a "safe" buy, reliable, few problems. A new round of 60 to 100 meg drives is also appearing in the $2500 range. Hardware and book in hand, it's time to reach for the check book and buy additional information. Apple's software supplements and technical notes are a must, from Apple's mailing facility. For referencing the ROM, there is TOM's Program's little ROM reference deck. Finally, don't forget the MacTutor subscription!

Utilities are important. No programmer should be without Fedit Plus, Mac Nosy 2.1, TMON or Heap Show. Both Fedit Plus and Mac Nosy 2.1 are new versions being shown at Boston. All four of these products are available from MacTutor as well as other technical software outlets. Heap Show is a very valuable little utility that allows you to analyze heap use in your program, find dangling handles and pointers, and help you prevent heap fragmentation. It is one of the most valuable of utilities yet is also the least known.

Now loaded with documentation from IM, supplements and back issues of MacTutor, the next step is finding out what it all means. For this, the only way to go is to sign up for Dave Wilson's Macintosh Programming Class. This is Apple's official introduction to Mac Programming and it is indispensible. I just finished the class and I really learned a lot about the Mac that I either didn't know or didn't understand correctly. Dave is a master teacher and well versed in the Mac hacker's world. Cost is not cheap at $1,000, but it's well worth the price if your part of a company project. Six months after you're well along in development, thanks to Dave Wilson, you can then sign up for Scott Kanaster's Mac College to get the bugs out of your project. But we're getting ahead of ourselves. First you must decide on a development system.

HFS Changes Development Environment

Under MFS, the Mac supported a number of traditional development systems. The Aztec C 1.06G is preferred by Unix programmers because it preserves much of the Unix flavor of software development within the Mac interface. Consulair C and TML Pascal both present a similar Mac User Interface for software development using the traditional Edit/Compile/Link process. Under MFS, this traditional approach worked fine. However, under HFS, this approach breaks down because development systems must devise various methods of finding include files and trap files now arranged in different directories. The real problem is that HFS really makes the traditional approach of edit, compile and link obsolete. It simply takes too much time to run a program, bomb a program, debug a program, edit, compile, link and try again, when dealing with such a highly interactive and dynamic environment as Macintosh. Servant may ease this problem when available, by bringing a user configurable integrated environment to seperate programs not originally designed to be integrated, making a kind of user constructable LightSpeed environment, with the added advantage that you select the tools to install.

Solving the HFS Problem

The new world of development systems now coming out for the Mac solve the HFS problem by creating a development environment, in which all the files necessary to support the program development cycle is known to the system. These new systems are MPW from Apple, which brings Object Pascal and MacApp in a strong Unix style environment with scripts; TML Pascal 2.0, which also supports Object Pascal and units; and the newest product, LightSpeed C & Pascal, which create a "Project" that bundles files together dramatically speeding up compile and link. Let's focus on LightSpeed Pascal as this product typlifies the new "environment" approach that the Mac interface encourages.

Integrated Tools Speeds Debugging

Mac programming is primarily a process of "discovering" what the Mac ROMS will let you do and how they let you do it. Because of this, re-running programs over and over to experiment is a primary debugging task. With traditional edit, compile and link systems, this process takes several minutes. Make five change and test cycles and you've used up the better part of an hour! With the concept of a "Project", all files are loaded and available, compilation is virtually instant as only the necessary compilation is done, everything else is pre-compiled. Finally, linking is automatic since the project knows both what to link, and what needs to be re-linked after a change. The editing and executing environment are the same, so you can both edit, and execute your program from the same shell, switching back and forth with a click of the mouse between your program's window and menus, and LightSpeed Pascal's windows and menus. Source is always available for editing and source code debugging is fully supported. The result is faster turn-around time in the edit, compile, execute, bomb, re-edit cycle. Instead of several minutes, new attempts are created and tested in seconds. An interactive environment that produces fully compiled double-clickable applications, DA's and drivers.

How it works

The key to LightSpeed Pascal is the project concept. A project is a window and a file that contains a list of all filenames associated with a particular program effort. It also contains compiler and linker information that allows only changed code to be re-compiled and linked dynamically. Since libraries and include files don't have to be re-loaded and compiled as they do on traditional systems, the project approach makes fast turn-around of the compile and link process.

We write a program within our project environment with the LightSpeed Pascal "system". This system includes a multi-file editor. Our editing window is always available, even while our program is running. A build command creates a final application for us that is a fully compiled stand alone program we can move to any disk. For MDS ".REL" files, we can convert them to our project library format with a converter utility, provided. The compiler is fully Lisa and TML Pascal compatible. We compiled last month's keyboard sleuth program without any problem. The system does not have an assembler, so assembly code still must be assembled using MDS or Consulair C systems, and then converted for loading into our project.

The Debugging Process

If your frustrated at trying to marry your development system with MacsBug and TMON, then you'll really appreciate the LightsBug debugging window. Debugging is the key to this system. The system automatically debugs your source code as you type, checking for syntax errors on entry. Instant compilation checks again for normal compilation errors. Finally, running the program again checks for run-time errors. At any time, if an error occurs, you can change the source, look at the debugger window, try some parameter values in the observe window, or change variable values in the instant window. To see what your program is doing, modify the source, set breakpoints and run again. Watch your window while you also watch the debug window! The debug window is automatically linked to the point where your program stopped, showing the heap trail, register values and your global variables. A single click on a global variable, and bang! The debugger shows you a hex and ascii memory dump at the location of the variable.

Figure 1 shows the many windows of LightSpeed Pascal. Our own program window is also available! The project window lists our library, source and include files. Compiler options are set for each file by clicking in the box next to the file name. We change the link order for our project by simply dragging the file name up or down in the project window. No more editing of a link file!

Our source code is shown in another window, and we can open a window for each of our source segments. The observe window allows us to monitor the value of a variable as our program executes. The Instant window allows us to execute program source code or trap calls instantly to observe their effects. If we get what we want, we can paste the line into our source window. Text and drawing have the same purpose they did under MacPascal, but even more important, our own toolbox created windows from our running program are available and clickable along with each of the other windows shown in figure 1.

In figure 2, we see how the observe window works. Here, we've placed a breakpoint at the putstring(s) statement in the source window. After running, our program is now stopped at the break, and the value of s is shown in bold in the observe window. Note that in the LightsBug window, we instantly have the base address of the variable s and can observe it's value in both hex and ascii.

In figure 3, we now change the value of s in the instant window. As we do this, the observe window shows the new value of S, and the LightsBug window shows the new hex and ascii values for s in memory.

In figure 5, we now wish to change the value that is assigned to s directly in memory where our source code lives. We do this by clicking edit and another little debug dialog box opens allowing us to enter a new value directly into memory. As we do this, the LightsBug window shows that what used to be "there!" is now "fere!". This also changes our source code and when we run the program, as figure 6 shows, the new source code value is shown being assigned to s during execution.

Figure 7 shows that our program window exists along with LightSpeed Pascal's windows and we can swtich back and forth by clicking on the spray can (for debugging!).

Finally a Decent Manual

For some reason, Mac development systems have shipped with manuals that assume you already know every language command by heart. Very few even have a simple language definition. If you don't already know C or Pascal, forget it! The LightSpeed manuals are very well done, very large and provide a clear description of the language syntax and commands much like normal manuals on other computers have traditionally done. It is a mystery to me why it has taken this long for decent manuals to be shipped with Mac development environments.

Reaction

I personally think these products will revolutionize how software is done on the Mac. The time saved in testing and re-running programs under development is so tremendous that no one will settle for the large development time required of traditional edit, compile, and link systems. The Mac takes more time anyway in the learning curve of the ROM functions, so anything we can gain in the development cycle is extremely important. But most of all, LightSpeed Pascal will be very popular because no one will want to live without source level debugging with LightsBug if they don't have to. The debugging capabilities will cause people to stop and think if they really need all the overhead of MPW after all.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Dash 4.0.0 - Instant search and offline...
Dash is an API documentation browser and code snippet manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
Bookends 12.7.9 - Reference management a...
Bookends is a full-featured bibliography/reference and information-management system for students and professionals. Bookends uses the cloud to sync reference libraries on all the Macs you use.... Read more
TrailRunner 3.8.834 - Route planning for...
TrailRunner is the perfect companion for runners, bikers, hikers, and all people wandering under the sky. Plan routes on a geographical map. Import GPS or workout recordings and journalize your... Read more
iFFmpeg 6.2.5 - Convert multimedia files...
iFFmpeg is a comprehensive media tool to convert movie, audio and media files between formats. The FFmpeg command line instructions can be very hard to master/understand, so iFFmpeg does all the hard... Read more
DaisyDisk 4.4 - $9.99
DaisyDisk allows you to visualize your disk usage and free up disk space by quickly finding and deleting big unused files. The program scans your disk and displays its content as a sector diagram... Read more
iFFmpeg 6.2.5 - Convert multimedia files...
iFFmpeg is a comprehensive media tool to convert movie, audio and media files between formats. The FFmpeg command line instructions can be very hard to master/understand, so iFFmpeg does all the hard... Read more
DaisyDisk 4.4 - $9.99
DaisyDisk allows you to visualize your disk usage and free up disk space by quickly finding and deleting big unused files. The program scans your disk and displays its content as a sector diagram... Read more
BetterTouchTool 2.07 - Customize Multi-T...
BetterTouchTool adds many new, fully customizable gestures to the Magic Mouse, Multi-Touch MacBook trackpad, and Magic Trackpad. These gestures are customizable: Magic Mouse: Pinch in / out (zoom... Read more
BetterTouchTool 2.071 - Customize Multi-...
BetterTouchTool adds many new, fully customizable gestures to the Magic Mouse, Multi-Touch MacBook trackpad, and Magic Trackpad. These gestures are customizable: Magic Mouse: Pinch in / out (zoom... Read more
BetterTouchTool 2.07 - Customize Multi-T...
BetterTouchTool adds many new, fully customizable gestures to the Magic Mouse, Multi-Touch MacBook trackpad, and Magic Trackpad. These gestures are customizable: Magic Mouse: Pinch in / out (zoom... Read more

RPG Djinn Caster (Games)
RPG Djinn Caster 1.0.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.0 (iTunes) Description: SPECIAL PRICE 38% OFF(USD 7.99 -> USD 4.99)!!!A Fantasy Action RPG of far foreign lands! Summon the Djinns and rise to... | Read more »
Alto's Odyssey gets its first trail...
There's finally video evidence of Alto's Odyssey, the follow up to the 2015 App Store hit, Alto's Adventure. It looks just as soothing and atmospheric as Alto's last outing, but this time players will be journeying to the desert. Whereas Alto's... | Read more »
Last week on Pocket Gamer
What’s going on in the wider world of portable gaming? Each week we ask that question of our sister website Pocket Gamer. The PG team covers iOS gaming, just like 148Apps, but it also strays into the world of Android games and handheld consoles... | Read more »
Pokémon GO Generation 2 evolution guide
At long last, Niantic Labs finally unleashed the Generation 2 Pokémon into the wild. Pokémon GO trainers are scrambling to grab up this new set of 80 Pokémon. There are some special new tricks required to catch all of these new beasties, though.... | Read more »
The best new games we played this week
It feels as though the New Year got off to a creaking start as far as mobile games go, but that's changed over the past few weeks. The last few days alone have seen the debut of a number of wonderful games, so we thought we'd take the time to... | Read more »
Recruit more scallywags and discover new...
Get ready to show off your sea legs all over again in Oceans & Empires’ new grand update, which aims to make the act of rising to the role of seven seas ruler even more fresh and appealing, thanks to a richness of new content on both iOS and... | Read more »
Mage the Ascension: Refuge (Games)
Mage the Ascension: Refuge 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: The groundbreaking roleplaying game Mage: The Ascension manifests in our turbulent present with Refuge, an... | Read more »
Vampire: Prelude (Games)
Vampire: Prelude 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: The classic roleplaying game Vampire: The Masquerade returns to digital games with a Prelude of things to come. Experience a... | Read more »
Digby Forever Guide: How to dig to the d...
Digby Forever is a sparkling homage to arcade classics, and while you may be tiring of the number of arcade games being thrown at you, this endless digger finds many ways to stand out from the rest of the pack. The game manages to be challenging... | Read more »
The best sales on the App Store this wee...
It's been quite the week in mobile games, but if the latest releases(there were some pretty darn good ones, in case you missed out) aren't really doing the trick, perhaps some of these discounted games will. Many of these premium games had their... | Read more »

Price Scanner via MacPrices.net

13-inch 2.0GHz Space Gray MacBook Pro on sale...
Adorama has the non-Touch Bar 13″ 2.0GHz Space Gray MacBook Pro in stock today for $100 off MSRP. Shipping is free, and Adorama charges NY & NJ sales tax only: - 13″ 2.0GHz MacBook Pro Space Gray... Read more
13-inch Touch Bar MacBook Pros on sale for $1...
B&H Photo has select 2016 Apple 13″ Touch Bar MacBook Pros in stock today and up to $100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 2.9GHz/512GB Touch Bar MacBook... Read more
KSI-1802R SX Disinfect-able Keyboard With Wav...
KSI has unveiled a new, innovative medical keyboard, the KSI-1802R SX, at HIMSS 2017, running February 19-22 in Orlando, Florida. KSI-1802R SX is the only keyboard that combines dual factor... Read more
15-inch Touch Bar MacBook Pros on sale for up...
Amazon has 15″ Touch Bar MacBook Pros in stock today and on sale for up to $150 off MSRP including free shipping: - 15″ 2.7GHz Touch Bar MacBook Pro Space Gray: $2720.38 $79 off MSRP - 15″ 2.7GHz... Read more
Apple’s Education discount saves up to $300 o...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free: -... Read more
13-inch 1.6GHz/256GB MacBook Air on sale for...
Newegg has the 13″ 1.6GHz/256GB MacBook Air (MMGG2LL/A) on sale for $1029.99 including free shipping. Their price is $170 off MSRP, and it’s the lowest price available for this model. Choose Newegg... Read more
Save up to $600 with Apple refurbished Mac Pr...
Apple has Certified Refurbished Mac Pros available for up to $600 off the cost of new models. An Apple one-year warranty is included with each Mac Pro, and shipping is free. The following... Read more
12-inch 1.1GHz Retina MacBooks on sale for $1...
B&H has 12″ 1.1GHz Retina MacBooks on sale for $150 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 12″ 1.1GHz Space Gray Retina MacBook: $1149 $150 off MSRP - 12″ 1.1GHz... Read more
InTouch Health Expands iOS And Windows Produc...
Specialty telehealth enterprise provider InTouch Health has announced an expanded range of FDA Class I listed medical devices and software solutions for ambulatory, non-acute and non-emergent... Read more
iMobie Airs World’s 1st iCloud Manager with M...
iMobie Inc., an Apple-related software company, announced their newly-updated iPhone manager AnyTrans with exclusive feature to sync and manage contents across multiple iCloud accounts. With it,... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Manager *Apple* Systems Administration - Pu...
Req ID 3315BR Position Title Manager, Apple Systems Administration Job Description The Manager of Apple Systems Administration oversees the administration and Read more
*Apple* Technician - nfrastructure (United S...
Let’s Work Together Apple Technician This position is based in Portland, ME Life at nfrastructure At nfrastructure, we understand that our success results from our Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Manager *Apple* Systems Administration - Pu...
Req ID 3315BR Position Title Manager, Apple Systems Administration Job Description The Manager of Apple Systems Administration oversees the administration and Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.