lldb-rpc-сервер застрял на 100% с Xcode 10 - PullRequest
0 голосов
/ 18 сентября 2018

Мы только что обновились до Xcode 10.0. Запуск проекта приводит к тому, что lldb-rpc-server потребляет 100% одного процессора, но не запускает процесс двоичного файла проекта.

  • Двоичный файл запуститсяв режиме «Профиль».
  • Мы можем отладить тестовый проект.

Кто-нибудь сталкивался с подобной проблемой и знает решение?

Анализ lldb-rpc-сервер:

Failed to start process notifications for pid 7658 (19)
Sampling process 7658 for 1 second with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling lldb-rpc-server (pid 7658) every 1 millisecond
Process:         lldb-rpc-server [7658]
Path:            /Applications/Xcode.app/Contents/SharedFrameworks/LLDBRPC.framework/Versions/A/Resources/lldb-rpc-server
Load Address:    0x1033e5000
Identifier:      lldb-rpc-server
Version:         1000.11.37.1
Code Type:       X86-64
Parent Process:  Xcode [2707]

Date/Time:       2018-09-25 10:49:24.854 +0200
Launch Time:     2018-09-25 10:39:39.893 +0200
OS Version:      Mac OS X 10.14 (18A391)
Report Version:  7
Analysis Tool:   /usr/bin/sample

Physical footprint:         57.4G
Physical footprint (peak):  57.4G
----

Call graph:
    881 Thread_79039   DispatchQueue_1: com.apple.main-thread  (serial)
    + 881 start  (in libdyld.dylib) + 1  [0x7fff62ba5085]
    +   881 main  (in lldb-rpc-server) + 494  [0x103437bfe]
    +     881 rpc_common::Connection::RunLoop()  (in lldb-rpc-server) + 152  [0x1033f55c0]
    +       881 rpc_common::Connection::ReceivePacket(rpc_common::RPCPacket&)  (in lldb-rpc-server) + 149  [0x1033f5ab7]
    +         881 rpc_common::RPCConnectionSocket::Read(std::__1::basic_string<unsigned char, std::__1::char_traits<unsigned char>, std::__1::allocator<unsigned char> >&, bool)  (in lldb-rpc-server) + 173  [0x1033eef37]
    +           881 read  (in libsystem_kernel.dylib) + 10  [0x7fff62cdf8a6]
    881 Thread_79060: RPC packet thread for client tid 00013163 (78179)
    + 881 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff62d96425]
    +   881 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff62d9a2a7]
    +     881 _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff62d9733d]
    +       881 Packets::RunReadThread(void*)  (in lldb-rpc-server) + 9  [0x1033f8c6f]
    +         881 Packets::ReadThread()  (in lldb-rpc-server) + 289  [0x1033f8d95]
    +           881 Packets::ProcessPackets()  (in lldb-rpc-server) + 256  [0x1033f8f12]
    +             881 rpc_common::Connection::HandleRPCPacket(rpc_common::RPCPacket&)  (in lldb-rpc-server) + 62  [0x1033f54e0]
    +               881 rpc_common::Connection::PrivateHandleRPCPacket(rpc_common::RPCPacket&, rpc_common::RPCPacket&, bool&)  (in lldb-rpc-server) + 469  [0x1033f473f]
    +                 881 rpc_server::_ZN4lldb10SBDebugger12CreateTargetEPKcS2_S2_bRNS_7SBErrorE::HandleRPCCall(rpc_common::Connection&, rpc_common::RPCStream&, rpc_common::RPCStream&)  (in lldb-rpc-server) + 355  [0x1033e6dbd]
    +                   881 lldb::SBDebugger::CreateTarget(char const*, char const*, char const*, bool, lldb::SBError&)  (in LLDB) + 313  [0x1036f2447]
    +                     881 lldb_private::TargetList::CreateTarget(lldb_private::Debugger&, llvm::StringRef, llvm::StringRef, bool, lldb_private::OptionGroupPlatform const*, std::__1::shared_ptr<lldb_private::Target>&)  (in LLDB) + 37  [0x10689f527]
    +                       881 lldb_private::TargetList::CreateTargetInternal(lldb_private::Debugger&, llvm::StringRef, llvm::StringRef, bool, lldb_private::OptionGroupPlatform const*, std::__1::shared_ptr<lldb_private::Target>&, bool)  (in LLDB) + 2718  [0x10689ffd4]
    +                         881 lldb_private::TargetList::CreateTargetInternal(lldb_private::Debugger&, llvm::StringRef, lldb_private::ArchSpec const&, bool, std::__1::shared_ptr<lldb_private::Platform>&, std::__1::shared_ptr<lldb_private::Target>&, bool)  (in LLDB) + 1927  [0x1068a0eeb]
    +                           881 lldb_private::Target::SetExecutableModule(std::__1::shared_ptr<lldb_private::Module>&, bool)  (in LLDB) + 572  [0x10689424c]
    +                             881 lldb_private::Target::GetSharedModule(lldb_private::ModuleSpec const&, lldb_private::Status*)  (in LLDB) + 896  [0x106894938]
    +                               881 PlatformMacOSX::GetSharedModule(lldb_private::ModuleSpec const&, lldb_private::Process*, std::__1::shared_ptr<lldb_private::Module>&, lldb_private::FileSpecList const*, std::__1::shared_ptr<lldb_private::Module>*, bool*)  (in LLDB) + 175  [0x10654a381]
    +                                 881 PlatformDarwin::FindBundleBinaryInExecSearchPaths(lldb_private::ModuleSpec const&, lldb_private::Process*, std::__1::shared_ptr<lldb_private::Module>&, lldb_private::FileSpecList const*, std::__1::shared_ptr<lldb_private::Module>*, bool*)  (in LLDB) + 758  [0x106647190]
    +                                   881 void std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::__push_back_slow_path<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&)  (in LLDB) + 206,198,...  [0x10696575e,0x106965756,...]
    881 Thread_79080: lldb.debugger.io-handler
    + 881 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff62d96425]
    +   881 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff62d9a2a7]

1 Ответ

0 голосов
/ 19 ноября 2018

Проблема возникла из-за записи //lib/... в зависимой библиотеке.

Проблема устранена в r331876 на llvm.org, который не является частью Xcode 10.

Мне удалось переписать записи библиотеки с помощью install_name_tool.Так как ошибка исправлена ​​для будущей версии и исправлена ​​работа записей библиотеки, я закрыл ошибку https://bugs.llvm.org/show_bug.cgi?id=39083.

Вы можете использовать следующие команды для перезаписи записей библиотеки.

install_name_tool -id ...         # change the library path entry itself
install_name_tool -change ...     # change an entry of a dependent library
...