Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
UtilCode/CoreAssertion.c
#include "CoreAssertion.h" |
strcatnum(char *str, short num) |
{ |
Str31 lineStr; |
NumToString((long)num,lineStr); // convert number to pascal string |
lineStr[lineStr[0]+1] = 0x00; // null terminate the string |
lineStr[0] = ' '; // make first byte a space |
strcat(str,lineStr); // append number text to string |
} |
void CoreAssert(short expEval, char *expr, char *file, short linenum) |
/* This routine will build an error message from the information passed */ |
/* and drop into the debugger */ |
{ |
char str[256]; |
char *header = "ASSERTION FAILURE: '"; |
char *filePfx = "' IN FILE "; |
char *linePfx = " LINE #"; |
char *postFix = "; SC6"; |
char *evalPfx = " EXP ="; |
strcpy(&str[1],header); // put the asssertion failure message first |
strcat(&str[1], (void*)expr); // copy the expression that evaluated to false |
strcat(&str[1], (void*)filePfx); // display file prefix |
strcat(&str[1], (void*)file); // append file name to error message |
strcat(&str[1],(void*)linePfx); // display line number prefix |
strcatnum(&str[1],linenum); // display the line number |
strcat(&str[1],(void*)evalPfx); // display the evaluation prefix |
strcatnum(&str[1],expEval); // display the evaluation result |
/* Display the error message in the debugger */ |
strcat(&str[1],(void*)postFix); // add macsbug commands to end of error message |
str[0] = strlen(&str[1]); // set the length byte for pascal string |
DebugStr(str); |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14