Depurador do Python que não pára nos pontos de interrupção

1

Eu estou em um ambiente de desenvolvimento baseado em Linux, onde não tenho permissões de superusuário.

Meu problema básico é que os pontos de interrupção que eu configurei no emacs através do pdb nunca funcionam. O depurador nunca pára nesses pontos de interrupção.

Depois de investigar esse problema, suspeito que seja porque o caminho do ponto de interrupção não corresponde ao caminho verdadeiro do arquivo.

Primeiro, o caminho que vejo da linha de comando é assim:

/home/me/a/b

Mas os administradores o configuraram para que / home / me seja um link simbólico para uma montagem oculta

/.hidden/x/me/a/b

Ao iniciar o emacs a partir de /home/me/a/b e tentar depurar test.py nesse diretório emitindo M-x pdb e, em seguida, pdb test.py , o cabeçalho no buffer gud informará que o caminho completo do arquivo é

/.hidden/x/me/a/b/test.py

Então, quando tento definir um ponto de interrupção no arquivo python com M-x space , o prompt que vejo no buffer gud é

Breakpoint X at /home/me/a/b/test.py:Y

Portanto, o ponto de interrupção está abaixo de /home/me/a/b/test.py , mas o caminho de arquivo no cabeçalho do buffer gud é /.hidden/x/me/a/b/test.py . E o depurador nunca pára no ponto de interrupção, o que é muito chato.

Recebo uma confirmação de minhas suspeitas quando explico cd em /.hidden/x/me/a/b/ e, em seguida, inicio o emacs. Então eu posso definir pontos de interrupção e o depurador irá parar neles.

Atualmente, minha solução é explicitamente cd no caminho correto e lançamento do emacs.

Mas existem soluções melhores? Seja através do emacs, bash ou python?

    
por JasonMond 18.03.2015 / 18:39

1 resposta

1

Você pode forçar o emacs a sempre abrir arquivos usando nomes reais absolutos:

(setq find-file-visit-truename t)
    
por 18.03.2015 / 19:30