3
を印刷し、私は私のObjective-CプログラムのObjective-C - コマンドライン(打ち鳴らす) - スタックトレース
のスタックトレースを印刷したいと思います私が打ち鳴らす(自動参照カウント)
を使用して、コマンドラインからコンパイルしています私は次のことを知っていただきたいと思います:
- は、私はコンパイル時に任意のパラメータを追加する必要がありますか?
- トレースを開始してトレースを印刷するためのコードを追加する必要がありますか?下記の
は、私は、スタックトレースを印刷するように持っているため、サンプル・プログラムである:
#import<Foundation/Foundation.h>
@interface Car : NSObject
@property (weak) NSNumber* doors;
@end
@implementation Car
@synthesize doors;
@end
int main()
{
system("clear");
Car *car1 = [[Car alloc] init];
NSNumber *d1 = [[NSNumber alloc] initWithInteger: 4];
//I want to start printing the stack trace from this point on
car1.doors = d1;
printf("---- end\n");
return(0);
}
コマンドをコンパイルするために使用:
clang -fobjc-arc test.m -framework Foundation -o test
おかげで、私は、疑問を持っていますcar1.doors = d1;という文が実行されたときに私が以前にペーストしたプログラムでは、セグメンテーションフォルトが発生するので、どのようにセグメンテーションフォルトを引き起こすのかを知ることができます。セグメント化フォルトを引き起こすステートメントの前に関数 'printStackTrace()'を呼び出すと、セグメント化フォルトの原因となるステートメントの後にトレースを呼び出すとトレースがあまり表示されません。 – user1046037
私はそれを行うには1つ以上の方法があると仮定し、以下のリンクはそれを行うためのオプションを示しています:http://stackoverflow.com/questions/8125530/objective-c-arc-nsnumber-segmentation-fault – user1046037