xcode からアプリケーション (c++ コマンドライン) を起動しようとすると、同様のエラーが発生します (アプリケーションはターミナルから正常に動作します。
XCode: 「APP_X_Y」を起動できませんでした - 「A」パケットがエラーを返しました: -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;
}
ご覧のとおり、「a」パケット エラーが lldb にあります。問題は、この問題をどのように修正できるかということです。xcodeでLLDBを再インストール/再構成する解決策はありますか? 誰でもlldb関数から問題がどこにあるかを見つけることができますか?
私は最新のMac OS + Xcode 4.6.3最新を使用しています
あなたのアイデアを共有してください。