Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чём отлаживать? не могу выбрать 
V
    Опции темы
dmitryk1
Дата 12.3.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 10.6.2008
Где: Новосибирск

Репутация: 2
Всего: 2



Отлаживал скрипт под линуксом из епика, плагина эклипса. В принципе меня всё почти устраивало, но с недавних пор не могу запустить отладку, он не генерит отладочный пакет с ошибкой запаковки, а локальный дебаг вообще жалуется что не может к какому-то хосту подрубиться. Гугль на подробный запрос выдаёт мои старые вопросы на ту же тему, или всякую кашу.

Подскажите, кто в чём или как отлаживает на линуксовых машинах работающие скрипты?

то есть или удалённая отладка или локальная но на линуксе. И желательно бесплатную бы, но не принципиально.

Тут был разговор, что под VI отлаживают, но я его не победил.

perl -d не смог зайти внутрь своего пакета, точнее зашёл, но потом он пошёл вообще вглубь, хотя мне туда не надо. команды вроде правильно использовал... И не смог просмотреть переменных, он печатает всё. кроме того что надо

Подскажите пожалуйста статьи, где подробно разжёвывается какой-либо дебаггер. И название его (у гугля спрошу где качать)
PM MAIL GTalk Jabber   Вверх
arto
Дата 12.3.2009, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



что именно не работает в perl -d ?
PM MAIL ICQ   Вверх
shamber
Дата 13.3.2009, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



KOMODO 
PM MAIL Jabber   Вверх
amg
Дата 13.3.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



DDD
PM MAIL   Вверх
arto
Дата 13.3.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



ddd, насколько я помню, использует perl -d
PM MAIL ICQ   Вверх
dmitryk1
Дата 13.3.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 10.6.2008
Где: Новосибирск

Репутация: 2
Всего: 2



Цитата(arto @ 12.3.2009,  23:41)
что именно не работает в perl -d ?

не смог просмотреть содержимое конкретной переменной (линк к базе данных, длинный, ветвистый)  и при проходе с заходом внутрь процедур не всегда куда нало попадаю...

Добавлено через 1 минуту и 43 секунды
Цитата(shamber @ 13.3.2009,  10:46)
KOMODO

так и не понял, как с его помощью отлаживать скрипты не с виндовой машинки...
PM MAIL GTalk Jabber   Вверх
arto
Дата 14.3.2009, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



пример можно?
PM MAIL ICQ   Вверх
shamber
Дата 14.3.2009, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Komodo  вроде и под nix существует. и отлаживать можно....
PM MAIL Jabber   Вверх
dmitryk1
Дата 14.3.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 10.6.2008
Где: Новосибирск

Репутация: 2
Всего: 2



Цитата(arto @ 14.3.2009,  00:41)
пример можно?

основной скрипт

Код

#!/usr/bin/perl 

#use CGI::WebOut;
#use CGI::WebIn(1);
#use JSON;
use lib qw(.); 
use dbmysql;

#ErrorReporting(ER_NoErr);

#Header("Content-type: text/plain; charset=windows-1251");
#Header("Content-type: text/plain; charset=utf-8");



my $qType ='gettest';

if($qType eq 'gettest'){
                    
                                my $mysql_local=dbmysql->new();
                            
                            print $mysql_local;
                            
                                $mysql_local->conn('localtest');
                                {
                            
                        print $mysql_local;
                                    
                                #print to_json(
                                print $mysql_local->query(qq(
                            
                                    SELECT * from foo        
                                              ));#);
                                        }

}


dbmysql.pm
Код

#!/usr/bin/perl

package dbmysql;

use lib qw(.);

use strict;
use DBI;
#use DBD::Oracle;

use dbRs;
use DBData;

sub new {
  my $proto = shift;                 #       
  my $class = ref($proto) || $proto; #  ,      
  my $self  = {
    dbh=>undef
  };
  
  bless($self, $class);              #    bless
  return $self;
}

sub query{
    
    my $self = shift;
    my $sql = shift;
    if ($self->{dbh}){
    my $sth=dbRs->new($self->{dbh});    
    return $sth->askQuery($sql,@_);
    }    
}


sub DESTROY {
  my $self = shift;
  $self->{dbh}->disconnect;
}

sub conn{
  my $self = shift;
    my $servName=shift;
    my $srv=$DBData::mysqldata->{$servName};

    if ($srv){
#     $self->{dbh} = DBI->connect("dbi:Oracle:host=$srv->{oracle_server};port=$srv->{oracle_port};sid=$srv->{oracle_sid}",
#                                                $srv->{oracle_user}, $srv->{oracle_password},{ora_charset => $srv->{oracle_charset}}
#                                )or die "Error connecting to database : " . DBI->errstr;
    
    # Connect to the database.
     $self->{dbh} = DBI->connect("DBI:mysql:database=$srv->{database};host=$srv->{host}",
                       $srv->{user}, $srv->{password},
                       {'RaiseError' => 1})or die "Error connecting to database : " . DBI->errstr;

    }
}

1;


dbRs.pm

Код

#!/usr/bin/perl

package dbRs;

use strict;

use DBI;
use DBD::Oracle;



sub new {
  my $proto = shift;                 
  my $class = ref($proto) || $proto; 
  my $self  = {
    NAME    => undef,
    VERSION => undef,
    OPTIONS => [],
    sth=>undef,
    dbh=> shift,
    }; 
  bless($self, $class);              
  return $self;
}

sub execQuery{
    my $self = shift;    
    my ($query,@params)=@_;
    
    $self->{sth} = $self->{dbh}->prepare($query) or die ": " . $self->{dbh}->errstr;
      my $i=1;
    foreach(@params){
        if(not $_){$_="%"}
        $self->{sth}->bind_param($i, $_);
        $i++;
    }

    $self->{sth}->execute()
      or die "Error execute query : " . $self->{sth}->errstr;
    
    
}

sub askQuery{
    my $self = shift;    
    
    $self->execQuery(@_);

    my @retTable;
    while(my @data = $self->{sth}->fetchrow_array())
    {
        push @retTable,\@data;# 
    }
    
    if ($self->{sth}->rows == 0)
    {
        #print "Empty";        
    }

    return \@retTable;
    
}

sub DESTROY {
   my $self = shift;
  $self->{sth}->finish;

}

1;


В общем-то ничего сложного, ещё один pm но там обычный хэш с паролями и параметрами доступа.
всё это работает с другим модулем и с ораклом. Сделал по образу и подобию для мускуля. При запуске просто ничего не выдаёт. Ну из содержимого таблицы. 
Вот и пытаюсь выяснить где-же я что неправильно сделал. Потому как к базе вроде подключился, какая-то цифирка вылазит при печати. 

В общем вроде проблема мелкая а уже несколько дней бьюсь :(

Добавлено через 2 минуты и 57 секунд
Цитата(shamber @ 14.3.2009,  11:31)
Komodo  вроде и под nix существует. и отлаживать можно....

тоже нехилый минус, он вроде как платный, если под виндой я его смогу полечить то пол никсом вряд ли...

А платить кучу бабок на свои развлечения и хобби я пока не готов :( 

или в этом плане с ним всё просто?
PM MAIL GTalk Jabber   Вверх
shamber
Дата 14.3.2009, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



под никсом с ним не работал, подсказать не могу.
PM MAIL Jabber   Вверх
Arch1S
Дата 14.3.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 14.1.2008
Где: Беларусь, Гомель

Репутация: нет
Всего: 3



Цитата(dmitryk1 @  14.3.2009,  15:59 Найти цитируемый пост)
тоже нехилый минус, он вроде как платный, если под виндой я его смогу полечить то пол никсом вряд ли...

Komodo-Edit и Komodo-IDE полностью бесплатные, я работаю под nix на Komodo-Edit и всё отлично

Раньше эти продукты были платные, сейчас нет, скачать можно тут http://downloads.activestate.com/Komodo/releases/5.0.3/
PM MAIL   Вверх
shamber
Дата 14.3.2009, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Цитата(Arch1S @  14.3.2009,  17:17 Найти цитируемый пост)
 Komodo-IDE полностью бесплатные

Вы в этом уверены? Разработчики судя по всему не в курсе smile
Я только что установил Komodo. он предлагает обновить лицензию, для этого открывается страничка, где предлагается купить Komodo за 295 баксов.
Расскажите как это сделать бесплатно? Взлом? 

Это сообщение отредактировал(а) shamber - 14.3.2009, 19:42
PM MAIL Jabber   Вверх
arto
Дата 16.3.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



все нормально, у меня все видно из под perl -d, все переменные доступны.


PM MAIL ICQ   Вверх
dmitryk1
Дата 16.3.2009, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 10.6.2008
Где: Новосибирск

Репутация: 2
Всего: 2



Поставил Комодо локально, на винду. Потому как вычитал что он поддерживает удалённый дебаг, но вот как его запускать никак не найду. Может кто подскажет? Потому как на эклипсе он работает довольно прозрачно - генерится скрипт, закидывается туда где он будет работать и запускается, и оттуда коннектится к моей машинке. 

Тут должно быть так, же, но вот найти где генерить этот запускающий файл.

Подскажете?
PM MAIL GTalk Jabber   Вверх
KSURi
Дата 16.3.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Перловый отладчик в комодо - тоже фронтенд для perl5db со всеми вытекающими.


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1074 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.