• MacTech Network:
  • Tech Support
  • |
  • MacForge.net
  • |
  • Apple News
  • |
  • Register Domains
  • |
  • SSL Certificates
  • |
  • iPod Deals
  • |
  • Mac Deals
  • |
  • Mac Book Shelf

MAC TECH

  • Home
  • Magazine
    • About MacTech in Print
    • Issue Table of Contents
    • Subscribe
    • Risk Free Sample
    • Back Issues
    • MacTech DVD
  • Archives
    • MacTech Print Archives
    • MacMod
    • MacTutor
    • FrameWorks
    • develop
  • Forums
  • News
    • MacTech News
    • MacTech Blog
    • MacTech Reviews and KoolTools
    • Whitepapers, Screencasts, Videos and Books
    • News Scanner
    • Rumors Scanner
    • Documentation Scanner
    • Submit News or PR
    • MacTech News List
  • Store
  • Apple Expo
    • by Category
    • by Company
    • by Product
  • Job Board
  • Editorial
    • Submit News or PR
    • Writer's Kit
    • Editorial Staff
    • Editorial Calendar
  • Advertising
    • Benefits of MacTech
    • Mechanicals and Submission
    • Dates and Deadlines
    • Submit Apple Expo Entry
  • User
    • Register for Ongoing Raffles
    • Register new user
    • Edit User Settings
    • Logout
  • Contact
    • Customer Service
    • Webmaster Feedback
    • Submit News or PR
    • Suggest an article
  • Connect Tools
    • MacTech Live Podcast
    • RSS Feeds
    • Twitter

ADVERTISEMENT
Volume Number:11
Issue Number:3
Column Tag:Think Top 10

Think Top 10

This monthly column, written by Symantec’s Technical Support Engineers, aims to provide you with technical information based on the use of Symantec products.

By Michael Hopkins and Craig Conner, Symantec Technical Support

Note: Source code files accompanying article are located on MacTech CD-ROM or source code disks.

This month we’ll cover the PowerPC and Symantec’s C++ Cross Development Kit.

Q: How do I debug my PowerPC application?

A: The Symantec PowerPC Cross Development Kit does not include an integrated source-level debugger. You have three options for debugging.

1) The CDK includes Apple’s two machine PowerPC debugger which allows you to send debugging info from the PowerPC running the application to a non-PowerPC machine connected via the serial port. Although this is a very good debugging environment, it requires an extra machine.

2) An alternative is to use Apple’s single machine debugger, available from Apple as a pre-release version.

3) Perhaps the best alternative is to compile your code under the 68K compiler and thoroughly debug it using the integrated Symantec Debugger. Once your program is debugged, you should be able to recompile it using the PowerPC compiler without modifying the runtime behavior.

Q: I am getting bus errors when I run my PowerPC code. How do I find dangling pointers in my programs?

A: When you create pointer variables, set them to the value (void *)0xDEADBEEF. This is an odd address and you do not need to worry about it being a valid address on Macintosh NuBus cards (the address lives in slot D’s superslot space). Any time you dereference such a pointer before assigning a value to it, you will get either a bus error or an address error. This technique also works for 68K code.

Q: How do I make a fat binary application using the CDK?

A: Build your application with the 68K compiler, and then add your resulting application file to your PowerPC project. When you build the PowerPC app, the environment will copy the 68K resources (including the 68K 'CODE' resources) into the final app along with a 'cfrg' resource and the PPC code (in the data fork).

Q: I am in the process of porting some scientific applications written in C to the PowerPC. I run into all kinds of problems when compiling it with the C++ compiler. Is there a native PPC C translator available for the CDK?

A: Yes, we do have a native C translator available as well as a complement of Standard C Libraries. If you would like to receive a copy, give us a call at (503) 465-8470, send us a message at d0152 on AppleLink, or email us at powermac@bedford.symantec.com. Be sure to include your name and mailing address with your request. Allow 5-10 days for shipping.

Q: I am trying to compile my PPC project and I get a link error "undefined main()". What causes this?

A: The current version of the THINK Project Manager is not capable of hosting a runtime PowerPC environment. You will get this error if you choose Run from the Project menu. Instead, you should compile the project by choosing Bring Up To Date, and then choose Build PowerPC App from the AppleScript menu to build your executable.

Q: I am trying to compile my program using the CDK and the PowerPC C compiler and I am getting the warning: "File <stdio.h>; Line 28; While compiling 'myfile.c' Warning: Warning: The Symantec ANSI libraries require mapcr to be turned off". What should I do?

A: Go into your standard library folder and rebuild those libraries that you are including in your project. The libraries that will most likely need rebuilding are PPCANSI.o and PPC CPlusLib.o.

1) For each library you want to rebuild, find and open the corresponding project file (PPC ANSI.o is PPCANSI.Π, PPC CPlusLib.o is PPCCPlusLib.Π ).

2) Choose Remove Objects to make sure that all of the source files are recompiled.

3) Go to the compiler settings page for both PowerPC C and PowerPC C++ (under Edit, Options, PowerPC C or PowerPC C++ ) and uncheck the Map carriage returns check box.

4) Bring the project up to date.

5) Use the Build PowerPC Lib script to create the library.

Q: I just installed the CDK patch version 7.0.4.1 and when I rebuild the ANSI libraries, I get errors "Undeclared FATANX, FFEXT", and "FX2DEC" in math.c, printf.c, and scanf.c. How do I fix this?

A: There is an error in the fp.h file from the CDK 7.0.4.1 patch which causes these problems. This will be fixed in the next update. To work around it, do the following:

• In the Universal Headers folder, rename fp.h to PowerPCfp.h.

• Create a new file named fp.h in the Universal Headers folder containing the following:

 #pragma once
 #if defined(powerc) || defined(__powerc)
 #include <PowerPCfp.h>
 #else
 #include <SANE.h>
 #endif

Q: I am trying to build PPCTinyEdit.Π with the CDK and I get an error from ToolServer "PPCBuild.out error MarkReleaseObject :: new failed error -108". What is causing this and how can I fix it?

A: An error code of -108 is a system error that indicates that you do not have enough room in your heap zone. Increase your memory partition for ToolServer and the problem should go away.

Special Thanks to Glenn Austin, Mark Baldwin, and Colen Garoutte-Carson.

 
MacTech Only Search:
Community Search:

 
 
 

 
 
 
 
 
  • SPREAD THE WORD:
  • Slashdot
  • Digg
  • Del.icio.us
  • Reddit
  • Newsvine
  • Generate a short URL for this page:



MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797
MacTech is a registered trademark of Xplain Corporation. Xplain, "The journal of Apple technology", Apple Expo, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, Apple Expo, MacTech Central, MacTech Domains, MacNews, MacForge, and the MacTutorMan are trademarks or service marks of Xplain Corporation. Sprocket is a registered trademark of eSprocket Corporation. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.
All contents are Copyright 1984-2010 by Xplain Corporation. All rights reserved. Theme designed by Icreon.
 
Nov. 20: Take Control of Syncing Data in Sow Leopard' released
Nov. 19: Cocktail 4.5 (Leopard Edition) released
Nov. 19: macProVideo offers new Cubase tutorials
Nov. 18: S Stardom anounces Safe Capsule, a companion piece for Apple's
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live