The Alchemist Guild’s Blog

Mac Software Development and Pascal

Browsing Posts published in August, 2008

This update focuses mainly on changes to the debugger but there are other useful updates to the editor also. However there is still a nasty bug I haven’t been able to track which causes the application to run slowly after using the debugger. I’m sorry to say the debugger STILL isn’t fully functional yet but it does work for short sessions, which after you can just quit the app (it restarts quick). I think the next version will have the debugger working correctly.

Changes:

  • You can navigate errors in the console by using command keys (in the editor menu).
  • The first error in the console is auto-selected after a build.
  • You can set a label to files (like in the Finder) in the source browser by using file info. The coloring scheme is not very good yet however.
  • Document cursor selections are remembered.
  • The text in the find window is always selected when the window is opened (via command)
  • Creating new empty files inserts a default unit template. This file can be changed at: Contents/Resources/Templates/newfile.txt
  • $INCLUDE compiler directives are shown in the symbol browser.
  • Records and class symbols are closed in the symbol browser by default to avoid clutter.
  • Dragging a file from the project browser into text will insert a {$INCLUDE } compiler directive with the files name.
  • There is a function menu in the debugger editor. However, you can still only navigate within the file being debugged.
  • Stack frames without valid locations (from library code without source files for example) are not selectable in the stack frame browser and colored grey.
  • Common value types (i.e. strings, boolean, numbers, sets etc…) are colored in the debugger.
  • File info window (thus far is basically empty) by contextual clicking on a file in the browser. This is also how you can rename folders.
  • Function arguments longer than 255 characters are now handled correctly in the debugger.
  • Compiling syntax now updates the open documents text. Additionally, in the editor menu you can compile only the open editors syntax.
  • Killing the debugger session actually kills the program running.
  • Break points are 90% but still some quirks here and there.
  • Clearing all break points command in the project menu works. It also clears break points from all related projects!
  • Global symbols from the current file are shown in the debugger. This needs more testing as of now.
  • The SELF symbol is shown in the debugger.
  • Deeply nested pointers print values. However, fields from super-classes will not print yet citing a syntax error.
  • Mangled FPC symbol names (like TTABS_CREATE_$__APPEND) are cleaned up in the debuggers stack browser and readable.
  • Debugger always scrolls the execution stopped line into view.
  • Outstanding debugger issues with speed and long symbol values have been fixed.
  • There is a Add Frameworks item in the project menu that opens a choose dialog to the system frameworks folder.

Big little release with many important changes. However, note that the debugger should just be ignored until I can get the ProcessUtils unit working under FPC 2.2.2. I haven’t been able to fix it without support from the developer and he’s busy right now. The debugger has new improvments but it’s still really slow and now fails to parse symbols with more than 255 characters of value output. I have been using this version to convert a few CW projects and it’s doing quite well.

Changes:

  • Find and replace, including find in project with searches current project and all related projects (in the projects group).
  • Cleaning projects deletes all items in the temporary build folder.
  • Files are marked in the browser if they need compiling (dirty).
  • Dynamic libraries and frameworks can be copied into the application bundles framework folder during build by checking the application target option.
  • You can now navigate files by contextual clicking on the item in file browser and selecting a function.
  • Compiling syntax in the project menu. This needs to be done after making changes or adding new symbols.
  • Class browser. Open in the Window menu.
  • All open documents are saved before building.
  • Debugger editor has a toolbar with the file path and potential modification date warning.
  • Projects have a new PROJECTS group for debugging programs that link libraries from external projects. Contextual clicking contains a sources item that lets you open files from the project.
  • Builds dynamic libraries and bundles from “Library” programs. Note that only dynamic libraries are tested and working.
  • Console window has a status toolbar.
  • Syntax errors are shown in the gutter with help tags when you click on them.
  • Break points are synched properly when toggled during debugging.
  • Fixed a bug causing speed issues when saving files with break points
  • Chasing arrows animation appears in the file browser when files are compiling.
  • Pointer/object values are printed in the debugger.
  • Viewing class hierarchy in contextual menu
  • CoreFoundation variables will print values (via CFShow) in the debugger.
  • Complex types like CFDictionary do not display very well however. Note you can see the raw CFShow output in the console window.

  • Fixed incorrect scrolling when saving bug.
  • Variables are drawn in red when there values change in the debugger.
  • Debugging processes can be killed.
  • Option to ignore notes and warnings from the compiler in the application preferences.
  • In the help menu are some quick links to FPC documentation in pdf format on the hard disk at /Developer/Documentation/Free Pascal Compiler.
  • Jumping to symbols in files outside of the current document nows works correctly.
  • Opened symbols in the debugger now remember their state between stack frame changes.
  • Crashes are handled in the debugger.