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





Пост N: 121
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 27.01.10 12:26. Заголовок: Отладка программы


Кто чем отлаживается? Я попытался использовать в GUI режиме debug (altd),
очень медленно, неудобно. Приходится подключать процедуру fDebug(...) и
таким образом просматривать значения переменных после окончания программы.
А вот качественный отладчик с трассировкой - это, наверное, в бесплатном варианте
невозможно.
А у кого какие методы, способы и инструменты отладки?


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


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




Пост N: 1064
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.01.10 17:14. Заголовок: Я пока пользуюсь Msg..


Я пока пользуюсь MsgInfo().... Так неудобно ...

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





Пост N: 124
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 29.01.10 22:54. Заголовок: 71 просмотр и только..


71 просмотр и только один ответ, неужели тема не актуальна?

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


Пост N: 801
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.01.10 00:29. Заголовок: krutoff пишет: Кто ..


krutoff пишет:

 цитата:
Кто чем отлаживается?



Ну я, к примеру, часто использую [url=http://technet.microsoft.com/ru-ru/sysinternals/bb896647(en-us).aspx]DebugView[/url]

#xtranslate __dbg( <fmt>, [<param,...>] ) => wapi_outputDebugString( ">> " + hb_StrFormat( <fmt>, <param> ) ) 

INIT PROCEDURE appInit
//
__dbg( "%1$s START", hb_progName() )

RETURN

EXIT PROCEDURE appExit
//
__dbg( "%1$s EXIT", hb_progName() )

RETURN

PROCEDURE Main(...)
LOCAL nNum := 1.10
LOCAL lBool_1 := .f., lBool_2 := .t.

__dbg( "nNum is %1$d", nNum )
__dbg( "nNum is %1$f", nNum )

__dbg( "lBool_1 is %1$d", lBool_1 )
__dbg( "lBool_2 is %1$d", lBool_2 )

RETURN


С одинаковым успехом из PRG и C кода.

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




Пост N: 1066
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.10 15:13. Заголовок: Петр пишет: Ну я, к..


Петр пишет:

 цитата:
Ну я, к примеру, часто использую [url=http://tech........



Не получается собрать пример !!! Выдает ошибку:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_WAPI_OUTPUTDEBUGSTRING' referenced from С:\DEBUGVIEW\TEST.OBJ
Link error.


Собираю:
C:\DebugView>C:\MiniGui\BATCH\compile.bat test /CG

Harbour MiniGUI 1.7 Extended Edition (Build 71) - 2009.07.30
Harbour 2.0.0beta2 (Rev. 11891)
Может обновиться нужно ?

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


Пост N: 802
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.01.10 15:42. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может обновиться нужно ?


Естественно - harbour 2 уже не beta, да и MiniGUI актуальная версия 1.79
А еще нужно подключать библиотеку hbwin/

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


Пост N: 278
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.01.10 18:22. Заголовок: Попробывал DebugView..


Попробывал DebugView. Просто и эффективно.
Спасибо.

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


Пост N: 803
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.01.10 22:26. Заголовок: PSP пишет: Попробыв..


PSP пишет:

 цитата:
Попробывал DebugView. Просто и эффективно.


Особенно если настроить фильтры/подсветку..

wapi_outputDebugString() - надстройка над Win API OutputDebugString(), которую в свою очередь используют стандартные средства трасировки xHarbour / Harbour.

Если кто не верит может попробовать
для xHb
hb_OutDebug( "It's power xHarbour!")
для hb 2.0
hb_setEnv( "HB_TR_WINOUT", "yes" )
hb_traceString( hb_strFormat( ">> %1$s is %2$s!", "Harbour", "cool!" ) )

Естественно пробовать нужно при запущенном DebugView или его аналоге (забыл название).

Как видим, для hb 2 должна быть установлена переменная окружения HB_TR_WINOUT (что с успехом можно сделать програмно).

И резюмируя - пользователям hb2 крайне желательно ознакомиться с функциями семейства hb_trace*. Оч-ч-ень неплохая функциональность скажу вам (правда я с ней пока ознакомился довольно таки поверхностно ).
Любители xHb также могут активно использовать для отладки DebugView и hb_OutDebug*


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




Пост N: 1068
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.01.10 00:56. Заголовок: Ура, и у меня получи..


Ура, и у меня получилось...
Только нужно запустить заранее DebugView.ехе
получается такая картинка:


Действительно, здорово....

А есть ли документация по DebugView ?

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


Пост N: 804
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 31.01.10 10:22. Заголовок: Andrey пишет: А ест..


Andrey пишет:

 цитата:
А есть ли документация по DebugView ?


Странный вопрос..
Mеню Help->Help или F1



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





Пост N: 125
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 31.01.10 12:12. Заголовок: В xHarbour'e не..


Петр, спасибо большое, что поделился такой неоценимой информацией!
Я сам пытался, просматривал исходники, но все недосуг или чего-то недопонимал,
а тут сразу даже и пример! Огромное спасибо!
В xHarbour'e не смог найти функцию hb_strFormat ...


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


Пост N: 281
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.01.10 12:19. Заголовок: krutoff пишет: В xH..


krutoff пишет:

 цитата:
В xHarbour'e не смог найти функцию hb_strFormat


Нет там ее, имхо.
Делайте просто hb_OutDebug( <str> ).
<str> должна появится в окне DebugView.
xHarboura нет у меня. Проверить не могу.

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


Пост N: 805
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 31.01.10 13:40. Заголовок: PSP пишет: В xHarbo..


PSP пишет:

 цитата:
В xHarbour'e не смог найти функцию hb_strFormat


Такой точно нет, а аналога я не знаю (strformat из tests\misc явно не то)
В принципе не тяжело и портировать, но это парафия разработчиков xHb

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




Пост N: 1324
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 31.01.10 14:55. Заголовок: Извините, ничего не ..


Извините, ничего не понял
Так это не настоящий отладчик ?
Выводить значения переменных можно любым способом: хоть в файл, хоть на экран, через qout, alert, msginfo, __dbg, hb_outDebug, leto_writelog
Что дает именно dbgView ?


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


Пост N: 806
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 31.01.10 16:30. Заголовок: Pasha пишет: Так эт..


Pasha пишет:

 цитата:
Так это не настоящий отладчик ?


В моем понимании - это трассировщик. Нужный инструмент и в большинстве случае его достаточно.

 цитата:
Выводить значения переменных можно любым способом: хоть в файл, хоть на экран, через qout, alert, msginfo, __dbg, hb_outDebug, leto_writelog. Что дает именно dbgView ?


В графическом режиме вывод на экран, например с помощью msginfo, не очень удобен, а в некоторых случаях и не возможен - при отладке оконных функций, callback процедур. А так себе для наглядности настроил фильтры, подсветку; установил галочку Always on Top и смотри. Трассировка в файл тоже очень полезна, но не всегда удобна.
К преимуществам dbgView я еще бы отнес возможность и удобность использования его в случае отладки сразу нескольких программ, например клиента и сервера; опять же время записывается, можно записать весь вывод в файл.
Ну и Remote Monitoring надо будет попробовать когда-то..
IМНО использовать dbgView или нет - это дело вкуса и целесообразности.
Возможно когда-то разработчики GUI создадут нормальный отладчик, а теперь, например для MiniGUI, я больших альтернатив не вижу. Работать с встроенным отладчиком действительно неудобно.
P.S. Для MiniGUI я бы посоветовал таки создать собственные функции трассировки на базе харборовской, но чтобы и пользователи xHb не чувствовали себя обделенными.






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




Пост N: 1069
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.10 16:43. Заголовок: Петр пишет: А так с..


Петр пишет:

 цитата:
А так себе для наглядности настроил фильтры, подсветку; установил галочку Always on Top и смотри.



Блин, не могу ни как настроить это...
Вообще перестала выводить данные в окне dbgView ....
Подскажите как настроить...

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


Пост N: 808
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 01.02.10 17:38. Заголовок: Andrey там так все ..


Andrey
там так все расcписано в справке, что мне остается только догадываться, что вы умудрились сделать

Capture|Capture Win32 должна стоять птичка

О фильтрах
As an example, say you want DebugView to display debug output that contains either “error” or “abort”, but want to exclude lines that contain either of those strings and the word “gui”. To configure DebugView’s filters for this you enter “error;abort” for the include filter and “gui” for the exclude filter. If you wanted to have DebugView show only output that has "MyApp:" at the start of the output line and "severe" at the end, you could use a wildcard in the include filter: "myapp:*severe".

О подсветке
DebugView also has another type of filtering: highlighting. If you want output lines that contain certain text to be highlighted in the DebugView output window, enter a highlight filter. DebugView implements support for up to five different highlight filters, each with its own foreground and background color settings. Use the filter drop-down in the highlight filter area of the filter dialog to select which highlight filter you want to edit. Use the same syntax just described for include and exclude filters when defining a highlight filter.

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




Пост N: 1070
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.10 18:18. Заголовок: Петр пишет: Capture..


Петр пишет:

 цитата:
Capture|Capture Win32 должна стоять птичка


Точно, после птички заработало....



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




Пост N: 1071
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.10 18:24. Заголовок: Блин, убился пока фи..


Блин, убился пока фильтр и подсветку сделал...

Для фильтра нужно, в поле Include ввести: test_xHb.exe:*

Вот что получилось:



Текст программы для хХарбора
Скрытый текст


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




Пост N: 1072
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.10 19:14. Заголовок: Петр пишет: для xHb..


Петр пишет:

 цитата:
для xHb
hb_OutDebug( "It's power xHarbour!")



А в С коде (для хХарбора) чтобы вывести переменную, что нужно задать ?


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


Пост N: 809
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 01.02.10 20:37. Заголовок: Andrey пишет: А в С..


Andrey пишет:

 цитата:
А в С коде (для хХарбора) чтобы вывести переменную, что нужно задать ?



OutputDebugString("It's power xHarbour!")

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





Пост N: 64
Зарегистрирован: 01.01.10
ссылка на сообщение  Отправлено: 01.02.10 21:13. Заголовок: Функцию hb_OutDebug(..


Функцию hb_OutDebug("It's power xHarbour!") можно использовать и в Harbour 2.0.0 если подключать xhb.lib при линковке exe-шника. А с помощью DebugView я поймал вирус под названием "RealTime" который проник на компьютер во время процедуры синхронизации времени с сервером времени Интернета. Запустил DebugView, а он как начал выдавать кажную секунду: "RealTime infected", я аж обалдел - отладочный вывод В ВИРУСЕ!


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




Пост N: 1073
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.10 21:43. Заголовок: Петр пишет: Output..


Петр пишет:

 цитата:

OutputDebugString("It's power xHarbour!")



Что-то не получается...
Петр, дайте пожалуйста пример для наглядности...
Только полностью:

#pragma BEGINDUMP

#include "hbapi.h"
#include ???? - какие нужно

HB_FUNC( C_TEST ) {
//
OutputDebugString("C_TEST_START");
.......
OutputDebugString( "status ==" ); // и как вывести-преобразовать к строковой переменной значения из С

OutputDebugString("C_TEST_EXIT");

} // HB_FUNC( C_TEST )

#pragma ENDDUMP


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


Пост N: 810
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 01.02.10 21:47. Заголовок: пример для нагляднос..


пример для наглядности...
PROCEDURE main 

QOut( hb_progName() )
__dbg()

RETURN

FUNCTION hb_progName()
LOCAL cName, cExt
//
hb_fNameSplit( hb_argv(0), , @cName, @cExt )
//
RETURN hb_fNameMerge(, cName, cExt)

#pragma BEGINDUMP

#include "hbapi.h"
#include "windows.h"

HB_FUNC(__DBG)
{
char szBuffer[ 100 ] = {0};

HB_FUNC_EXEC(HB_PROGNAME);
hb_snprintf( szBuffer, sizeof(szBuffer), "%s: %s for %s", hb_parc(-1), hb_verHarbour(), hb_verCompiler() );
OutputDebugString( szBuffer );
}
#pragma ENDDUMP


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




Пост N: 1074
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.10 22:00. Заголовок: Что-то не собирается..


Что-то не собирается:
Z:\xHarbour\bin\harbour test_xHb2.prg -n -q0 -gc -iZ:\xHarbour\include -p -w
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
test_xHb2.c:
Warning W8065 test_xHb2.prg 28: Call to function 'hb_snprintf' with no prototype in function HB_FUN___DBG
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_hb_snprintf' referenced from W:\DEBUGVIEW\TEST_XHB2.OBJ


Может библиотека какая-то нужна ?

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


Пост N: 811
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 01.02.10 22:12. Заголовок: Я использую xHarbour..


Я использую xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6633)
и вам советую время от времени обновляться.

Можете попробовать заменить hb_snprintf на стандартную snprintf.

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




Пост N: 1075
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.10 22:25. Заголовок: Петр, СПАСИБО БОЛЬШО..


Петр, СПАСИБО БОЛЬШОЕ !!! Заработало ....

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

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