lldb trava no Alpine Linux

1

Estou tentando rodar o lldb no Alpine Linux V3.8, mas ao tentar depurar qualquer programa, ele trava.

Estou usando o lldb 5.0.1-r0 do repositório edge/testing , que é a única versão disponível em repositórios apk V3.8:

lldb policy:
  5.0.1-r0:
    lib/apk/db/installed
    http://dl-cdn.alpinelinux.org/alpine/edge/testing

Correndo strace, parece estar preso esperando por um mutex:

...
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

Seguindo esta pista, encontrei um problema muito semelhante ao LLDB 3.8.0 no Debian 8, descrito aqui , mas infelizmente sem solução.

É um problema conhecido com o lldb no Alpine ou faltam algumas etapas de configuração?

Meu próximo passo seria construir o lldb mais recente a partir do código-fonte, mas seria muito preferível que ele trabalhasse com a versão empacotada. Muito obrigado!

    
por valiano 02.09.2018 / 09:01

1 resposta

0

Eu consegui construir um lldb funcional a partir das fontes mais recentes, 8.0.0 trunk, seguindo as instruções oficiais de compilação no link , com os seguintes parâmetros do CMake:

cmake ../llvm -GNinja -DCMAKE_BUILD_TYPE=Release

O Build demora um pouco, mas produziu uma boa construção do lldb que não parou e parece estar funcionando bem.

Então, parece que o pacote lldb=5.0.1-r0 está realmente quebrado, pelo menos na minha configuração do Alpine.

    
por 02.09.2018 / 16:29