1

如何知道全栈错误?

我想知道,如果可能的话,查看一整套被调用的函数。

我有一个功能层次结构,具有“一般”->“非常专业”的层次结构。

假设我有 5 级层次结构。

每个函数都有完成错误块,定义如下:

typedef (^ErrorBlock)(NSError*error)

FunctionWithManyParams:(Param1Type*)param1.... onError:(ErrorBlock)ErrorBlock;

层次结构中的每个函数都有相同的代码部分:

onError(NSError*error){
    ErrorBlock(error);
}

所以,如果我从高层调用函数(假设 n),它将从(n-1) 层调用函数等等。

如果1 级的函数有错误,它会回调到调用它的非常高级的函数(非常专业)。

是否有可能知道这个调用的完整路径?(或一些技术)?

我想要完整跟踪函数调用,所以,我需要添加如下内容:

    onError(NSError*error){
       NSString*errorDescription = [self getNameOfFunction];
       NSMutableDictionary * errorDictionary = [NSMutableDictionary dictionary];
       NSString*previousErrorDescription = [error description];

       [errorDictionary setValue:[NSString stringWithFormat:@"%@ >> %@",previousErrorDescription,errorDescription ] forKey:NSLocalizedDescriptionKey];
            NSError * errorNew = [NSError errorWithDomain:vkDomain
                                                  code:errorCode
                                              userInfo:errorDictionary
                               ];
        ErrorBlock(errorNew);
    }
4

1 回答 1

2

也许你需要:

NSLog(@"%@",[NSThread callStackSymbols]);
于 2012-09-14T08:01:29.833 回答