Alpine Linux V3.8에서 lldb를 실행하려고 하는데 프로그램을 디버깅하려고 하면 중단됩니다.
저는 edge/testing
현재 Alpine 저장소에서 사용할 수 있는 유일한 버전인 저장소의 lldb 5.0.1-r0을 사용하고 있습니다.
lldb policy:
5.0.1-r0:
lib/apk/db/installed
http://dl-cdn.alpinelinux.org/alpine/edge/testing
strace를 실행하면 뮤텍스를 기다리는 동안 멈춰 있는 것 같습니다.
...
mmap(NULL, 94208, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb866f10000
mprotect(0x7fb866f12000, 86016, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7fb866f26a68, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|0x400000, parent_tidptr=0x7fb866f26b20, tls=0x7fb866f26ae8, child_tidptr=0x7fb866f26b20) = 4302
futex(0x7fb866f3db20, FUTEX_WAIT, 4300, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4301, si_uid=1000, si_status=1, si_utime=1, si_stime=0} ---
futex(0x7fb866f3db20, FUTEX_WAIT, 4300, NULL
이 스레드에 이어 Debian 8의 LLDB 3.8.0에서 다음과 같이 설명된 매우 유사한 문제를 발견했습니다.여기, 그러나 불행하게도 해결책은 없습니다.
이것은 Alpine의 lldb와 관련된 알려진 문제입니까, 아니면 일부 설정 단계가 누락된 것입니까?
다음 단계는 소스에서 최신 lldb를 빌드하는 것이지만, 패키지 버전으로 작업하는 것이 더 나을 것입니다. 매우 감사합니다!
답변1
공식 빌드 지침에 따라 최신 소스 8.0.0 트렁크에서 기능적인 lldb를 빌드할 수 있었습니다.https://lldb.llvm.org/build.html, 다음 CMake 매개변수 사용:
cmake ../llvm -GNinja -DCMAKE_BUILD_TYPE=Release
빌드하는 데 시간이 좀 걸렸지만 중단되지 않고 제대로 작동하는 것처럼 보이는 멋진 lldb 빌드가 생성되었습니다.
lldb=5.0.1-r0
적어도 내 Alpine 설정에서는 이 패키지가 실제로 손상된 것 같습니다 .