【发布时间】:2011-04-30 10:15:24
【问题描述】:
我正在尝试创建一个使用 GDB 附加到程序的 NSTask,但我的程序在启动任务后只是冻结了。这可能吗?这是我正在使用的代码:
NSTask *task = [NSTask new];
[task setLaunchPath:@"/usr/bin/gdb"];
NSArray *args = [NSArray arrayWithObjects:@"TestApp.app", nil];
[task setArguments:args];
[task launch];
NSLog(@"Launched.");
NSData *data = [[outPipe fileHandleForReading] readDataToEndOfFile];
NSLog(@"Read data.");
我确定“TestApp.app”在正确的位置,因为我没有收到“没有这样的文件或目录”错误。控制台只打印“已启动”。旋转的沙滩球只持续了一分钟多,直到我结束了跑步。有什么想法可以使这项工作吗?
【问题讨论】:
-
我建议您阅读 Cocoa Dev Central 上的以下帖子:Wrapping UNIX Commands 和 Wrapping UNIX Commands Part II。
-
您的 gdb NSTask 是在执行命令后立即分离还是创建一个持久会话(如在终端中)?