XCode: Could not launch "APP_X_Y" - 'A' packet returned an error: -1
我在上面的问题中尝试了所有提到的解决方案,但没有一个能帮助我。
我终于发现问题是使用LLDB启动所以GDB工作正常。但我想使用LLDB调试我的程序,并使用xcode中的默认配置启动。
错误发生在以下lldb函数中:
Error
PlatformRemoteGDBServer::LaunchProcess (ProcessLaunchInfo &launch_info)
{
Error error;
lldb::pid_t pid = LLDB_INVALID_PROCESS_ID;
m_gdb_client.SetSTDIN ("/dev/null");
m_gdb_client.SetSTDOUT ("/dev/null");
m_gdb_client.SetSTDERR ("/dev/null");
m_gdb_client.SetDisableASLR (launch_info.GetFlags().Test (eLaunchFlagDisableASLR));
const char *working_dir = launch_info.GetWorkingDirectory();
if (working_dir && working_dir[0])
{
m_gdb_client.SetWorkingDir (working_dir);
}
// Send the environment and the program + arguments after we connect
const char **argv = launch_info.GetArguments().GetConstArgumentVector();
const char **envp = launch_info.GetEnvironmentEntries().GetConstArgumentVector();
if (envp)
{
const char *env_entry;
for (int i=0; (env_entry = envp[i]); ++i)
{
if (m_gdb_client.SendEnvironmentPacket(env_entry) != 0)
break;
}
}
const uint32_t old_packet_timeout = m_gdb_client.SetPacketTimeout (5);
int arg_packet_err = m_gdb_client.SendArgumentsPacket (argv);
m_gdb_client.SetPacketTimeout (old_packet_timeout);
if (arg_packet_err == 0)
{
std::string error_str;
if (m_gdb_client.GetLaunchSuccess (error_str))
{
pid = m_gdb_client.GetCurrentProcessID ();
if (pid != LLDB_INVALID_PROCESS_ID)
launch_info.SetProcessID (pid);
}
else
{
error.SetErrorString (error_str.c_str());
}
}
else
{
**error.SetErrorStringWithFormat("**'A' packet returned an error: %i",** arg_packet_err);**
}
return error;
}
正如您在lldb中看到'a'数据包错误现在的问题是如何解决这个问题?是否有任何解决方案在xcode中重新安装/重新配置LLDB?任何人都可以从lldb函数找到问题所在。
我正在使用最新的Mac OS + Xcode 4.6.3最新版
请分享您的想法。
答案 0 :(得分:2)
当debugserver
无法启动您尝试调试的应用时,会发生此错误。 debugserver
启动,附加,停止,检查和控制流程 - 这是一个包含所有这些职责的小程序。它通过“gdb远程协议”与lldb(可能在Xcode内部)进行通信,并带有一些小的扩展。
如果您构建了自己的lldb,则可能debugserver
没有正确签名代码,因此无法启动应用。
如果您更改了/etc/hosts
文件,请检查其中是否有127.0.0.1 localhost
行。有些人修改了他们的/etc/hosts
(我不知道为什么)并删除了这一行,这导致lldb尝试与debugserver通信时出现问题。
否则,请检查Console.app
中的输出,以查看是否记录了任何有用的消息。
答案 1 :(得分:1)
我遇到了同样的情况。它发生在我的情况下更新到Xcode 5之后。 毕竟它现在工作正常。
我按照Jason Molenda的评论执行了命令行执行。
运行“xcrun lldb ...”时出错:
xcrun error failed to exec real xcrun. (no such file or directory)
谷歌搜索后,我想出了这个:
xcode-select -print-path
/Developer
由于我的Xcode不在那里,我做了:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
我不知道为什么,但在我的情况下它没有立即起作用。在退出Xcode,终端等之后,Xcode运行并且调试按预期工作。