4

我正在开发一个使用 OAuth-Consumer 库的 iphone 应用程序,我当前的调试器 id 是 LLDB,它使用以下方法生成签名

-(NSString *)signClearText:(NSString *)text withSecret:(NSString *)secret
{
 //it generates base64EncodedData and then returns it as a string
 return base64EncodedResult;//this is line is executed successfully

}//when it reaches this line it again goes to the return statement and there app      crashes
 //with the gdb error

如果我在 return 语句之前使用 NSLog,它会成功打印 base64EncodeResult 的值。

我尝试了不同的调试器 GDB,但应用程序仍然崩溃并出现错误“无法访问位置 0xYYYYYYY 的内存”

当我尝试 none debugger 时,应用程序不会崩溃,但会停止进一步执行...

4

1 回答 1

0

如果局部变量的缓冲区溢出,它可能会破坏堆栈帧。如果发生这种情况,您可以覆盖堆栈的返回地址,以便应用程序返回到无效地址。

于 2013-02-14T11:13:56.910 回答