Koha Test Wiki MW Canasta on Koha Portainer

Test major Koha Wiki changes or bug fixes here without fear of breaking the production wiki.

For the current Koha Wiki, visit https://wiki.koha-community.org .

Debugging in VIM

From Koha Test Wiki MW Canasta on Koha Portainer
Jump to navigation Jump to search

Debugging Perl CGI mode with VIM

Install the plugin VIM Vdebug

With pathogen

  • Download the plugin
cd ~/.vim/bundle
git clone https://github.com/joonty/vdebug.git
  • Add the following line to vimrc
call pathogen#helptags()
  • You can now access Vdebug using the following command
:h Vdebug

Note:Vdebug require vim with compiled in python support. If you're useing Debian Wheezy, then the 'default' vim package does not have this. You can try vim-nox instead ;)

Install Perl module "remote debugging"

This module is provided by ActiveState at the following address [1]

wget http://downloads.activestate.com/Komodo/releases/archive/4.x/4.4.1/remotedebugging/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86.tar.gz
tar xzf Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86.tar.gz

Edit the Apache vHosts

It is necessary to add some environment variables and change the PERL5LIB variable in the virtualhost:

SetEnv PERL5LIB "/home/koha/src:/home/koha/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86"
SetEnv PERL5DB "BEGIN { require q(/home/koha/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86/perl5db.pl)}"
SetEnv PERLDB_OPTS "RemotePort=localhost:9000"
SetEnv DBGP_IDEKEY "whatever"
SetEnv PERL5OPT "-d"

Remote Debugging won't work under plack; you'll also have to disable plack in the virtualhost as well.

Disable Plack

Restart Apache

Start a debug session

In Vim, open the perl script to debug and press <F5>. From there, you have 20 seconds to launch the web page through a browser. If all went well, 3 new windows open in Vim: you are in debug mode!

Commands available to you in debug mode

<F2> Step over
<F3> Step in
<F4> Step out
<F5> Run
<F6> Stop/Close
<F9> Run to cursor
<F12> Evaluate variable under cursor

See :h Vdebug for more information

Configuration under kohadevbox

Before you run vagrant up, make the following changes to vars/user.yml:

plack: false

# ...

extra_tools:
 - vim

# ...

editor: vim

If you're changing an existing kohadevbox, run

vagrant up --provision

Neither the Vdebug vim plugin, nor the PerlRemoteDebugging script are installed ( yet). The steps for installation are the same as above, but should be installed under the vagrant user. You *will* have to install vim-nox:

sudo apt-get install vim-nox


Edit /etc/apache2/sites-enabled/kohadev.conf:

Comment out apache-shared-opac-plack.conf and apache-shared-intranet-plack.conf if they're not commented out already.

Replace SetEnv PERL5LIB line in both the opac and staff sections with the following lines:

   SetEnv PERL5LIB "/home/vagrant/kohaclone:/home/vagrant/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86"
   SetEnv PERL5DB "BEGIN { require q(/home/vagrant/Komodo-PerlRemoteDebugging-4.4.1-20896-linux-x86/perl5db.pl)}"
   SetEnv PERLDB_OPTS "RemotePort=localhost:9000"
   SetEnv DBGP_IDEKEY "whatever"
   SetEnv PERL5OPT "-d"


Developer handbook