On-line: Haz, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
moderator


Пост N: 633
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 22.05.13 18:54. Заголовок: GUI отладчик для Harbour


Запостил эту тему сюда, поскольку отладчик работает как с GUI, так и с консольными приложениями и может служить полноценной заменой стандартному.
Итак, в новый релиз HwGUI вошел GUI отладчик для Harbour. Чуть позже, может, завтра, я сделаю соответствующую страницу у себя на сайте и отдельный бинарный дистрибутив отладчика, а пока - вот это описание.


 цитата:

1. Введение

Отладчик состоит из двух частей:

1) Библиотека hwgdebug.lib, которая должна быть прилинкована к приложению,
которое вы собрались отлаживать, вместо стандартной hbdebug.lib. Ее
исходники находятся в hwgui/source/debug, она является частью HwGUI
проекта, но не содержит в себе вызовов HwGUI функций и классов и поэтому
может использоваться и с консольными приложениями, и с GUI приложениями,
собранными при помощи любых других GUI библиотек.

2) Исполняемый модуль hwgdebug.exe - собственно, сам отладчик - отдельная
( в отличие от стандартного, встроенного в отлаживаемое приложение )
GUI программа, написанная на Harbour+HwGUI. Его исходники находятся в
hwgui/utils/debugger. Поскольку HwGUI - кроссплатформенная
библиотека, исполняемый модуль может быть собран и под Windows, и под
другой ОС, где есть GTK ( например, Linux ).

Отладчик связывается с отлаживаемой программой посредством специальных
файлов, которые могут быть расположены в любом удобном месте. Поэтому отлаживаемая
программа может физически находиться на другом компьютере и даже быть собрана
на другой ОС. Таким образом, мы можем, используя Windows версию hwgdebug.exe на своем
компьютере, отлаживать программу, работающую на другом компьютере в сети под
управлением Linux или, например, OS2.

2. Как собрать приложение и запустить его на отладку

Собирается приложение таким же образом, как и раньше, как со стандартным
отладчиком. Мы добавляем ключ -b к вызову компилятора Harbour и добавляем библиотеку
отладчика в список библиотек для линкера, только теперь это не hbdebug.lib,
а hwgdebug.lib.

Запустить приложение на отладку можно несколькими способами:

1) Как и раньше, просто запустив приложение. При старте оно попытается найти и
запустить отладчик. Чтобы это получилось, он должен быть расположен или в
рабочем каталоге приложения, или где нибудь в доступном месте ( куда указывает
переменная окружения PATH ). Можно указать местоположение отладчика в
специальном файле hwgdebug.info, но об этом позже. Если отладчик не будет
найден, программа выдаст сообщение "Hwgdebug isn't available..." и ее работа
продолжится без отладчика.

2) Запустить сам отладчик и затем из него запустить приложение на отладку,
используя меню File/Debug program.

3) Запустить отладчик, указав имя отлаживаемой программы в командной строке,
например:

hwgdebug.exe c:\myapps\someapp.exe

При этом, как и в предыдущем случае, приложение запустится на отладку сразу же.

4) Запустить отладчик, указав в командной строке опцию -w с именем каталога,
доступного для чтения/записи и ему, и отлаживаемой программе, например:

hwgdebug.exe h:\shared\

а потом запустить отдельно отлаживаемую программу, рядом с которой
должен находиться файл hwgdebug.info с указанием того же каталога. Именно
этот режим позволяет отлаживать программу удаленно.


3. Использование hwgdebug.info

В рабочем каталоге отлаживаемой программы можно разместить файл
hwgdebug.info и указать в нем некоторые параметры для запуска отладчика,
а именно:

dir = d:/shared
Debugger = c:\tools\hwgdebug.exe
RunAtStart = On

Dir - имя каталога для хранения временных файлов, связывающих программу
с отладчиком, этот каталог должен быть доступен для чтения/записи и программе,
и отладчику, он может располагаться в любом удобном месте в сети. Указать
этот параметр необходимо при запуске отладчика по варианту 4 ( см. выше ).

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

RunAtStart - если эта опция опущена или установлена в Off, отладка стартует
с первой исполняемой строчки программы. Если же она установлена в On, то
она стартует как в стандартном отладчике - в месте программы, где
предварительно поставлены Altd(2); Altd().


4. Отладка

Если отладчик и ваша программа запустились нормально, между ними
установлено соединение и программа остановилась ( на первой строчке или после
Altd() ), в заголовке окна отладчика появится имя соответствующего prg модуля
и номер строки, где произошла остановка, в главном окне отладчика должен появиться
текст этого prg. Если в заголовке все есть, а в окне текста нет - значит, prg не
найден ( он расположен в другом каталоге ) и вам надо указать путь к нему с
помощью меню File/Set path.

Основные функции отладчика - те же, что и в стандартном ( можут, их
немного меньше на данный момент ) и работают они примерно так же:

Команды Go, Step, Trace, To cursor, Next Routine, Animate, установка и
удаление точек останова ( для этого можно дважды щелкнуть по соответствующей
строчке ), просмотр Workareas - для них предусмотрены те же горячие клавиши.

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

Вычисление выражений по ходу отладки - вводите выражение в окне ввода
в нижней части главного окна отладчика и жмите кнопку OK или клавишу ENTER -
результат должен появиться в окне чуть повыше. Пользуясь кнопками слева от OK
или клавишами Up, Down, можно перемещаться по списку ранее введенных выражений
( при этом результат соответствующего выражения на тот момент, когда оно
выполнялось, станет текущей строкой в окне выше. Можно перемещаться и по окну
результатов выполнения, при двойном щелчке по любой строчке в окне ввода появится
соответствующее этому результату выражение.




Спасибо: 1 
ПрофильЦитата Ответить
Ответов - 51 , стр: 1 2 3 All [только новые]


постоянный участник




Пост N: 2836
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.05.13 21:55. Заголовок: alkresin пишет: в ..


alkresin пишет:

 цитата:
в новый релиз HwGUI вошел GUI отладчик для Harbour


Это просто СУПЕР !
Для МиниГуи давно хотелось иметь отладчик !!!

А хХарбор поддерживать будет ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 862
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 22.05.13 22:30. Заголовок: Проверил маленькую к..


Проверил маленькую консольную прогу - работает, спасибо Александр. Будем тестить и использовать.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 634
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 23.05.13 07:49. Заголовок: Andrey пишет: А хХа..


Andrey пишет:

 цитата:
А хХарбор поддерживать будет ?


Должен. Я старался не использовать функции, которых нет в xHarbour. Учтите, что скомпилировать под xHarbour вам надо только библиотеку hwgdebug.lib, сам отладчик может быть сделан чем угодно, хоть на Бейсике :).

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 635
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 23.05.13 08:47. Заголовок: Добавил на свой сайт..


Добавил на свой сайт страницу http://www.kresin.ru/debugger.html отладчика, там есть и ссылка на бинарный дистрибутив, куда входит только сам отладчик с библиотеками.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 863
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 23.05.13 09:32. Заголовок: Подсветка линии не х..


Подсветка линии не ходит за курсором по F8.

Пытаюсь посмотреть отладчиком пример Димы http://clipper.borda.ru/?1-4-0-00000339-000-0-0-1368860560, просто тапаю F8 на цикле и вылетает:
Error BASE/1132  Bound error: array access 
Called from hwgdebug.prg->(b)MAIN(135)
Called from source\hbrowse.prg->FLDSTR(1908)
Called from source\hbrowse.prg->HBROWSE:LINEOUT(1049)
Called from source\hbrowse.prg->HBROWSE:PAINT(761)
Called from source\hbrowse.prg->HBROWSE:ONEVENT(300)
Called from ->HWG_REDRAWWINDOW(0)
Called from source\hbrowse.prg->HBROWSE:REFRESH(1871)
Called from hwgdebug.prg->TIMERPROC(344)
Called from hwgdebug.prg->(b)MAIN(194)
Called from source\htimer.prg->HWG_TIMERPROC(60)
Called from ->HWG_ACTIVATEMAINWINDOW(0)
Called from source\hwindow.prg->HMAINWINDOW:ACTIVATE(292)
Called from hwgdebug.prg->MAIN(196)

HWGUI 2.16c Build 1003 Harbour 3.2.0dev (r1305151954)
Date:05/23/13
Time:09:31:18



Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 636
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 23.05.13 10:12. Заголовок: AlexMyr пишет: Подс..


AlexMyr пишет:

 цитата:
Подсветка линии не ходит за курсором по F8.


А должна ? Я не уверен.

 цитата:
Error BASE/1132 Bound error: array access
Called from hwgdebug.prg->(b)MAIN(135)


Как раз ошибка позиционирования курсора. Исправление выложил на Sourceforge.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 864
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 23.05.13 10:46. Заголовок: alkresin пишет: А д..


alkresin пишет:

 цитата:
А должна ? Я не уверен.

запустил отладчик, подсветка на первой строке, курсор на local... , тапаем F8, курсор бежит, подсветка осталась там же, уходим по F8 за пределы экрана, перерисовка, подсветка перепрыгивает на строку с курсором, снова F8, курсор поскакал, подсветка осталась на месте, т.е. основное внимание на подсветку, потом ищешь курсор, который маленький слева. Тогда какая роль подсветки строки, может попробовать без нее?

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 637
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 23.05.13 10:58. Заголовок: Ок, уговорили, сдела..


Ок, уговорили, сделаю, чтобы подсветка "бежала" за указателем. Без нее нельзя, она указывает на строку, на которой вы можете нажать Enter или F9, чтобы установить точку останова.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 638
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 23.05.13 17:01. Заголовок: Перезалил hwgui с от..


Перезалил hwgui с отладчиком и отдельный дистрибутив - кое-что поправлено, добавлены средства для навигации по prg - поиск и список функций.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2884
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.05.13 15:27. Заголовок: alkresin пишет: And..


alkresin пишет:

 цитата:
Andrey пишет:

цитата:
А хХарбор поддерживать будет ?



Должен. Я старался не использовать функции, которых нет в xHarbour. Учтите, что скомпилировать под xHarbour вам надо только библиотеку hwgdebug.lib, сам отладчик может быть сделан чем угодно, хоть на Бейсике :).



Все-таки hwgdebug.lib не собирается через xHarbour
В debugger.prg надо сделать косметическую правку:

#ifndef __XHARBOUR__

THREAD STATIC t_oDebugger

#else

STATIC t_oDebugger

#endif

и вместо begin sequence with поставить try - catch

Для dbgentry.c нужны более существенные изменения, связанные с различным api

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 639
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 24.05.13 18:30. Заголовок: Pasha пишет: и вмес..


Pasha пишет:

 цитата:
и вместо begin sequence with поставить try - catch


Так begin sequence - стандартная Clipper'овская конструкция. Не может быть, чтобы она в xHarbour не поддерживалась.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2886
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.05.13 19:19. Заголовок: xHarbour не поддержи..


xHarbour не поддерживает опцию with:

BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 640
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.05.13 07:50. Заголовок: А... Ну это можно и ..


А... Ну это можно и без try...catch, наверное, решить:

bOldError := Errorblock( {|oErr|Break(oErr)} )
BEGIN SEQUENCE ...
...
END SEQUENCE
Errorblock( bOldError )


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 93
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 26.05.13 23:01. Заголовок: На MiniGUI работает ..


На MiniGUI работает ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2888
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.05.13 09:02. Заголовок: Softlog86 пишет: На..


Softlog86 пишет:

 цитата:
На MiniGUI работает ?



На Harbour совместно с библиотекой minigui должен работать.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2889
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.05.13 09:08. Заголовок: По поводу xHarbour. ..


По поводу xHarbour. Различия в api следующие:

1. Параметры hb_macroGetType. Можно сделать замену:
#ifndef __XHARBOUR__
type = hb_macroGetType( pStr );
#else
type = hb_macroGetType( pStr, HB_SM_RT_MACRO );
#endif

2. Различная структура frame в HB_VARINFO, и соответственно разные параметры в некоторых функциях вроде hb_dbgEntry

3. В xHarbour отсутствуют функции hb_arraySetCLPtr, hb_stackDebugInfo, hb_itemMove, hb_dbg_objSendMessage


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 641
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 27.05.13 10:50. Заголовок: Может, проще для xHa..


Может, проще для xHarbour не включать в библиотеку dbgentry.c - он у них, я вижу, в vm находится...

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2890
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.05.13 12:03. Заголовок: alkresin пишет: Мож..


alkresin пишет:

 цитата:
Может, проще для xHarbour не включать в библиотеку dbgentry.c - он у них, я вижу, в vm находится...



Да, так конечно будет лучше.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 642
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.05.13 09:54. Заголовок: Кто знает, какие фун..


Кто знает, какие функции в xHarbour могут заменить Harbour'овские hb_progname() ( возвращает путь и имя программы, из которой функция вызвана ) и hb_processopen() ( для запуска другой программы ) ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 643
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.05.13 10:17. Заголовок: Для hb_progname() на..


Для hb_progname() нашел замену - exename(), осталась hb_processopen(), а так xHarbour программы уже отлаживаются, сейчас пробовал.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 472
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.05.13 10:23. Заголовок: alkresin пишет: ост..


alkresin пишет:

 цитата:
осталась hb_processopen()


#xtranslate hb_processOpen( [<x,...>] ) => hb_OpenProcess( <x> )


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 644
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.05.13 11:46. Заголовок: Спасибо. Запостил вс..


Спасибо. Запостил все изменения на SVN, теперь hwgdebug.lib собирается и работает и под xHarbour.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 645
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.05.13 14:52. Заголовок: Выложил новую версию..


Выложил новую версию отладчика 1.02 ( отдельный бинарный дистрибутив )
Основные изменения:
- добавлена библиотека xHarbour/hwgdebug.lib - для xHarbour 1.2.1 + Bcc
- теперь можно менять шрифт
- измененный шрифт и путь к исходникам можно сохранить в hwgdebug.xml, который находится рядом с hwgdebug.exe ( Options/Save settings )
- Символы табуляции в исходных файлах заменяются при просмотре на пробелы.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 659
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.06.13 09:00. Заголовок: Выложил новую версию..


Выложил новую версию отладчика 1.03 ( отдельный бинарный дистрибутив )
Кое-что подправлено, добавлена пара строчек для Minigui.
Добавлена возможность сохранять и загружать точки останова. Они сохраняются в hwgdebug.xml, в секции, соответствующей имени отлаживаемой программы.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2840
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.06.13 13:11. Заголовок: alkresin пишет: доб..


alkresin пишет:

 цитата:
добавлена пара строчек для Minigui.



Спасибо БОЛЬШОЕ за вашу работу !!!

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 661
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 11.06.13 12:58. Заголовок: Выложил новую версию..


Выложил новую версию - 2.00
Такой скачок в нумерации оттого, что изменения, действительно, существенные. Для просмотра исходников теперь используется не browse, а текстовый редактор ( правда, в readonly режиме ) с подсветкой синтаксиса.
Кроме того, это окно сделано с закладками ( на основе tab'а ), так что можно одновременно держать открытыми несколько файлов и легко переключаться между ними. Чтобы легко найти текущую точку останова добавлен пункт меню Locate/Current position.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 872
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 11.06.13 17:01. Заголовок: Александр, а будет л..


Александр, а будет ли возможность как у стандартного отладчика просмотр значений массивов, объектов. Сейчас, например, есть переменная b1 := {1,2,3}, через watch видим только b1 Array(3):{"N","N","N"} и тоже для объектов getlist Array(1):{"O"}?

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 662
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 11.06.13 17:21. Заголовок: Да, конечно. Надо то..


Да, конечно. Надо только придумать наиболее подходящий интерфейс.
А вообще напрашивается на базе этого дела небольшое IDE.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 663
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 12.06.13 11:46. Заголовок: Выложил 2.01 с мален..


Выложил 2.01 с маленьким исправлением + добавлена возможность при запуске hwgdebug.exe c именем отлаживаемой программы указать и параметры для этой программы.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 132
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 13.06.13 13:43. Заголовок: alkresin пишет: Выл..


alkresin пишет:

 цитата:
Выложил 2.01



Для xHarbour осталась версия 1.03.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 665
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 13.06.13 14:13. Заголовок: TimTim пишет: Для x..


TimTim пишет:

 цитата:
Для xHarbour осталась версия 1.03.


Не понял. Где указана версия для xHarbour ?
Если вы о библиотеке xHarbour/hwgdebug.lib, то она действительно не изменилась, как не изменилась и hwgdebug.lib для Harbour.
2.01 - версия исполняемого файла hwgdebug.exe

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 133
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 13.06.13 16:19. Заголовок: Понял. Спасибо!..


Понял. Спасибо! Но у меня при попытке запустить отладчик выдается ошибка. Я думал это связано с библиотекой для xHarbour.
Содержание error.log

Error BASE/1132 Bound error: array access
Called from \myapps\source\utils\codeedit\hcedit.prg->HCEDIT:MARKLINE(479)
Called from \myapps\source\utils\codeedit\hcedit.prg->HCEDIT:SETCARETPOS(669)
Called from \myapps\source\utils\codeedit\hcedit.prg->HCEDIT:GOTO(1052)
Called from hwgdebug.prg->SETCURRLINE(730)
Called from hwgdebug.prg->TIMERPROC(494)
Called from hwgdebug.prg->(b)MAIN(218)
Called from source\htimer.prg->HWG_TIMERPROC(60)
Called from ->HWG_ACTIVATEMAINWINDOW(0)
Called from source\hwindow.prg->HMAINWINDOW:ACTIVATE(292)
Called from hwgdebug.prg->MAIN(220)

HWGUI 2.16c Build 1002 Harbour 3.2.0dev (Rev. 18481)
Date:06/13/13
Time:17:21:06


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 668
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 13.06.13 18:01. Заголовок: Странно. Не пойму чт..


Странно. Не пойму что-то, в какой ситуации такое могло произойти. А текст отлаживаемой программы перед этим отобразился ?
Вы отладчик запускали и из него программу, или сразу программу ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 134
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 14.06.13 13:54. Заголовок: Ошибка происходит и ..


Ошибка происходит и при запуске программы и при запуске отладчика и из него
программы. В обоих случаях текста отлаживаемой программы нет.

Удается поработать в отладчике, если действовать так
1. Запустить отладчик
2. File->Open source file открываю основной модуль и он появляется в окне
3. File->Debug program

После этого курсор на первом операторе основного модуля и можно по F8
отслеживать работу программы. Как только появляется вызов, скажем, какой-либо
моей подпрограммы, в отладчике открывается вкладка Empty и текста в нем нет. Но если
подгрузить соответствующий текст. то далее в отладчике можно следить за
работой подпрограммы.
Если при этом нажать F5, то отладчик закрывается и далее программа правильно
отрабатывает.

В тестовом примере используется моя библиотека (lib-файл). Попробую протестировать отладчик на тестовом примере без использования моей библиотеки.



Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 671
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 14.06.13 14:20. Заголовок: TimTim пишет: Ошибк..


TimTim пишет:

 цитата:
Ошибка происходит и при запуске программы и при запуске отладчика и из него
программы. В обоих случаях текста отлаживаемой программы нет.


А в заголовке окна отладчика имя prg файла и номер строки есть ? Название вкладки - Empty ?

 цитата:
Как только появляется вызов, скажем, какой-либо
моей подпрограммы, в отладчике открывается вкладка Empty и текста в нем нет.


Путь ( Set Path ) предварительно пробовали установить ? Если, кстати, сделать Save Settings, его при следующем вызове не придется вводить.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 135
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 14.06.13 15:20. Заголовок: alkresin пишет: А в..


alkresin пишет:

 цитата:
А в заголовке окна отладчика имя prg файла и номер строки есть ?


Есть
alkresin пишет:

 цитата:
Название вкладки - Empty ?


Да

Если указать Set path и сделать Save Settings, то при запуске как программы, так и отладчика и из него программы тоже происходит ошибка, но вкладка уже имеет имя основного модуля и отображает только одну строку
9 return nil
что судя по номеру к основному модулю не относится.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 136
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 14.06.13 15:50. Заголовок: Склепал по быстрому ..


Склепал по быстрому новый проект для тестирования отладчика без моих библиотек.
Отладчик и при запуске программы и при запуске отладчика и из него программы выдает вкладку с именем Empty, в заголовке окна отображается имя основного модуля и номер первого исполняемого оператора.
Set path указан, т.е. есть в файле hwgdebug.xml, кот. находится в папке с отлаживаемой программой.
Если подгрузить File->open source file, то отладка продолжается в нормальном режиме.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 672
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 14.06.13 16:12. Заголовок: Если указать Set pat..



 цитата:
Если указать Set path и сделать Save Settings, то при запуске как программы, так и отладчика и из него программы тоже происходит ошибка, но вкладка уже имеет имя основного модуля и отображает только одну строку
9 return nil
что судя по номеру к основному модулю не относится.


Может, отладчик находит у вас другой файл с тем же именем ? Хотя я отработал у себя такую ситуацию - все нормально, т.е. не вылетает... Попробуйте вот этот экземпляр: http://www.kresin.ru/down/hwgdebug.zip - я поставил там дополнительную проверку.

 цитата:
Set path указан, т.е. есть в файле hwgdebug.xml, кот. находится в папке с отлаживаемой программой.


hwgdebug.xml должен быть в одном каталоге с отладчиком, а не с отлаживаемой программой.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 137
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 14.06.13 19:20. Заголовок: alkresin пишет: hwg..


alkresin пишет:

 цитата:
hwgdebug.xml должен быть в одном каталоге с отладчиком, а не с отлаживаемой программой.


там же находится и отладчик, т.е. в папке с отлаживаемой программой.
alkresin пишет:

 цитата:
Попробуйте вот этот экземпляр


Попробовал, то же самое.

Кстати, в readme.rus говорилось об использовании Altd() в отладке, попробовал, не проходит линковка - неразрешимая ссылка.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 673
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.06.13 15:32. Заголовок: TimTim пишет: Попро..


TimTim пишет:

 цитата:
Попробовал, то же самое.


Попробуйте еще один вариант ( по тому же адресу ).

 цитата:
Кстати, в readme.rus говорилось об использовании Altd() в отладке, попробовал, не проходит линковка - неразрешимая ссылка.


Хмм... Вообще-то Altd() - стандартная клипперовская функция. Неужели в xHarbour ее нет ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2857
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.06.13 16:09. Заголовок: alkresin пишет: Воо..


alkresin пишет:

 цитата:
Вообще-то Altd() - стандартная клипперовская функция. Неужели в xHarbour ее нет ?


Так эта функция содержится в библиотеке debug.lib !

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 674
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.06.13 19:36. Заголовок: Andrey пишет: Так э..


Andrey пишет:

 цитата:
Так эта функция содержится в библиотеке debug.lib !


Ну заср..цы! Она должна быть в rtl.lib, поскольку в Клиппере она в clipper.lib - прообразе rtl.lib. Придется мне вставить в hwgdebug.lib для xharbour эту функцию.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 138
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 17.06.13 08:44. Заголовок: alkresin пишет: Поп..


alkresin пишет:

 цитата:
Попробуйте еще один вариант ( по тому же адресу ).


На тестовом примере без моих библиотек все ОК!
Пример с моими lib-ами буду еще тестировать.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 675
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 17.06.13 09:13. Заголовок: На тестовом примере ..



 цитата:
На тестовом примере без моих библиотек все ОК!


Там, возможно, образовался файл a.log - если так, что там написано ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 139
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 17.06.13 10:34. Заголовок: alkresin пишет: Там..


alkresin пишет:

 цитата:
Там, возможно, образовался файл a.log - если так, что там написано ?


Такого файла нет. Я проверял в папке приложения.
Кстати, о log-файлах, которые выдает отладчик, лучше их называть с префиксом, скажем hwg, поскольку, например, xMate, с которым я работаю, формирует файл ошибок приложения тоже с именем error.log

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 140
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 17.06.13 12:31. Заголовок: Пример с моими либам..


Пример с моими либами тоже все ОК!
Моя ошибка, сорри. В корне папки проекта действительно был пустой файл с именем основной программы, хотя все исходники были в папке .\Source. Не понимаю как такое могло быть, но было.

Несколько замечаний по отладке такие.
1. Есть возможность посмотреть только Local переменные, а остальные типы Public, Private и т.д.
2. По F6 нет просмотра самой записи БД.
3. Во время отладки при входе в функцию, которая в проекте в отдельном prg-файле, в отладчике появляется пустая вкладка с именем Empty, а после неё уже вкладка с функцией. На отладку это не влияет, но зачем?

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 676
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 19.06.13 10:29. Заголовок: 1. Есть возможность ..



 цитата:
1. Есть возможность посмотреть только Local переменные, а остальные типы Public, Private и т.д.
2. По F6 нет просмотра самой записи БД.


Я еще не решил, стоит ли это делать. В принципе, посмотреть нужные переменные и поля БД можно в Watch или просто в "командной строке". Всех private и public может быть много, а реально посмотреть надо, может, одну - две...

 цитата:
3. Во время отладки при входе в функцию, которая в проекте в отдельном prg-файле, в отладчике появляется пустая вкладка с именем Empty, а после неё уже вкладка с функцией.


Непорядок. Надо будет разобраться.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 885
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 19.06.13 11:02. Заголовок: alkresin пишет: В п..


alkresin пишет:

 цитата:
В принципе, посмотреть нужные переменные и поля БД можно в Watch или просто в "командной строке". Всех private и public может быть много, а реально посмотреть надо, может, одну - две...

Это если знаешь о ее существовании и помнишь как она пишется (действительно же может быть их много), а так вывел список и видно что к чему.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 692
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 23.07.13 19:06. Заголовок: Выложил новую версию..


Выложил новую версию отладчика - 2.02.
Добавлен просмотр массивов, объектов, private, public, static переменных, текущей записи БД. Подробности - на сайте и в readme.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 938
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 25.09.13 15:18. Заголовок: 1. При отладке класс..


1. При отладке классов надо два раза тапать F8 на строке определения класса CLASS anyClass чтобы пройти дальше.
2. В списке функций для класса показываются и определения методов и сами методы. Можно было бы показывать методом исключения, если есть и определение и присутствует метод - показываем что-то одно, если или определение, или метод, то или то, или другое.
3. На svn версия 2.01, на сайте 2.02, наверное просто номер версии на svn не поменяли.

Все не критично, спасибо еще раз.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 721
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 28.11.13 13:07. Заголовок: Выложена версия 2.03..


Выложена версия 2.03 http://www.kresin.ru/debugger.html
Whatsnew:
[*] Now it is possible to open Object and Array Inspectors, clicking on the appropriate line
in exisiting Inspector, thus to open for inspecting a nested object or array.
[*] Method declarations ( between CLASS and ENDCLASS ) no more listed in functions list.
[!] Small fix


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 51 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 101
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет