xdebug stack como links para netbeans

2

Estou tentando fazer com que os links de pilha do xdebug abram arquivos diretamente no netbeans, eis o que fiz até agora:

  1. Eu criei um arquivo executável /home/david/bin/netbeans.sh (que eu chmoded + x) contendo:

    #!/bin/bash
    
    url=
    file=${url#*\/\/}
    file=${file%?line=*}
    line=${url#*line=}
    
    /home/david/Programs/netbeans-8.1/bin/netbeans --open $file:$line
    
  2. em /etc/php5/apache2/php.ini I adicionado

    xdebug.file_link_format = "netbeans://%f?line:%l"
    
  3. no firebug "about: config" Eu criei um novo booleano:

    network.protocol-handler.expose.netbeans => false
    
  4. Eu criei um novo manipulador de URL no gconf do Gnome:

    gconftool-2 -t string --set /desktop/gnome/url-handlers/netbeans/command "/home/david/bin/netbeans.sh %s"
    gconftool-2 -t bool --set /desktop/gnome/url-handlers/netbeans/enabled true
    gconftool-2 -t bool --set /desktop/gnome/url-handlers/netbeans/needs_terminal false
    

agora, quando recebo um erro, os arquivos da pilha do xdebug são links do tipo netbeans:///var/www/html/path/to/file.php , tudo bem.
Quando clico em um desses links, recebo a janela "Iniciar Aplicativo", na qual tenho de escolher o aplicativo para abrir o arquivo: Eu seleciono o executável que criei no passo 1, ou seja: /home/david/bin/netbeans.sh mas recebo um erro mensagem dizendo:

  

/ home / david /: não existe, ou não é um arquivo simples

E é aí que estou preso, não entendo por que recebo esse erro e como resolvê-lo.

edit captura de tela da configuração do gnome

    
por OSdave 26.01.2016 / 17:09

1 resposta

1

Ok, então encontramos a solução para esse problema. Primeiro de tudo, havia um número de argumento incorreto se o arquivo netbeans.sh . Então url= deve ser url= . Mas também a análise do nome do arquivo e o número da linha no script estavam errados.

Como a string fornecida tem o formato netbeans:///path/to/file?line=[LineNumber] , a análise pode ser feita por:

#!/bin/bash

# extract the protocol
proto="$(echo  | grep :// | sed -e's,^\(.*://\).*,,g')"
# remove the protocol
url="$(echo ${1/$proto/})"
# get file and line
file="$(echo $url | cut -d\? -f1)" 
line="$(echo $url | cut -d\= -f2)"

/home/david/Programs/netbeans-8.1/bin/netbeans --open $file:$line
    
por incBrain 07.02.2016 / 16:51