Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Вниз

Breakpoint не работает.   Найти похожие ветки 

 
olookin ©   (2004-11-15 11:01) [0]

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


 
Плохиш ©   (2004-11-15 11:05) [1]

небось в модуле {$D-} {$L-} понаставил? в другом модуле все обработчики по-перекрывал, а inherited позабыл.
А так жди возвращения телепатов из отпуска.


 
olookin ©   (2004-11-15 11:12) [2]

[1] Плохиш ©   (15.11.04 11:05)

1. Директив, кроме {$R *.DFM}, нет никаких.
2. Обработчики не перекрывал, так как вообще не знаю как это делать.

Про телепатов - как я могу еще задать свой вопрос? Модуль выставить? Там ничего интересного нет.


 
uny ©   (2004-11-15 11:17) [3]

может в этой процедуре ничего не делается. добавить какой нибудь beep и посмотреть


 
Плохиш ©   (2004-11-15 11:20) [4]


> olookin ©   (15.11.04 11:12) [2]

Попробуй сделать "Build all"


 
olookin ©   (2004-11-15 11:22) [5]

[3] uny ©   (15.11.04 11:17)

Например, в другой форме ставлю брекпойнт на выражение:

procedure TEQAPbase.MDFCorrector1Click(Sender: TObject);
begin
 CorrectorForm.Show; //breakpoint
end;

У "странной" формы CorrectorForm есть событие OnShow. Однако даже такой брекпойнт вызывает переход не в процедуру CorrectorForm.OnShow, а в событие TEQAPbase.EQAPbaseOnMessage. Ставя брекпойнт на появление любой иной формы проекта, или вообще в любое место, исключая "странный" модуль, я получаю желаемый результат (т.е. функционирование брекпойнта).


 
olookin ©   (2004-11-15 11:23) [6]

[4] Плохиш ©   (15.11.04 11:20)
Попробуй сделать "Build all"

Не помогло.


 
Плохиш ©   (2004-11-15 11:37) [7]


> olookin ©   (15.11.04 11:22) [5]

А ты *nix не злоупотребляешь? Скорее всего у тебя в файле перевод строки из одного символа, проверь и замени все на #13#10.


 
GuAV ©   (2004-11-15 11:37) [8]

Уверен что именно эта версия модуля подключается, может копия какая ?


 
olookin ©   (2004-11-15 12:40) [9]

[8] GuAV ©   (15.11.04 11:37)

Уверен на 100%.

[7] Плохиш ©   (15.11.04 11:37)
А ты *nix не злоупотребляешь? Скорее всего у тебя в файле перевод строки из одного символа, проверь и замени все на #13#10.

Все писано прямо в дельфях под Win2000. Разве только то, что я просто скопировал когда-то код из другой формы, вставил в нынешнюю "странную", и переопределил обработчики событий на компоненты в "странной" форме? Но такое я делал неоднократно с другими модулями и не встречал никаких проблем.


 
Pentium133 ©   (2004-11-15 13:49) [10]


>[8] GuAV ©   (15.11.04 11:37)
>
> Уверен на 100%.

Откуда такая уверенность. В заголовке окна какой путь прописан?


 
Плохиш ©   (2004-11-15 14:09) [11]


> olookin ©   (15.11.04 12:40) [9]

>  просто скопировал когда-то код из другой формы, вставил
> в нынешнюю "странную",

Так в hex посмотреть не судьба?


 
Pentium133 ©   (2004-11-15 14:17) [12]

99% он трасирует копию файла. У меня такое бывало. И ещё с пеной у рта доказывал что "нет, это не копия!"


 
GuAV ©   (2004-11-15 14:35) [13]

Вот-вот... всё же пройдись поиском и прибей все копии, и dcu тоже оставь один .pas


 
Sirakuz ©   (2004-11-15 15:36) [14]

У тебя брейкпойнт активный? Всысле после компиляции рядом с этим кодом появляются синие кружочки? Если да и если ты точку останова ставишь на одном из этих кружочков то, возможно, обработчик нажатия переопределяется в другом месте; если нет - то дебагер не "подхватил" этот файл или не откомпилил этот код по различным причинам.


 
olookin ©   (2004-11-15 17:18) [15]

[12] Pentium133 ©   (15.11.04 14:17)
99% он трасирует копию файла. У меня такое бывало. И ещё с пеной у рта доказывал что "нет, это не копия!"

Итак, еще раз (а то ошибка сервера, а затем и несколькочасовое выключение инета похерило мое предыдущее сообщение). Физически удалил pas-файл. Dcu оставил. Нажимаю Ctrl-F12 и выбираю похеренный модуль. Разумеется, сообщение Cannot open file... По-моему, это доказывает, что компилирую я именно тот модуль, какой и вижу, а не копию оного...

[11] Плохиш ©   (15.11.04 14:09)
Так в hex посмотреть не судьба?

Объясни пожалуйста, что именно мне в Hex смотреть...

[14] Sirakuz ©   (15.11.04 15:36)

Активный (в том смысле, что не считает строку мертвой), и нигде ничего не переопределено у меня.


 
Verg ©   (2004-11-15 18:17) [16]

Название модуля, название файлов pas и dfm - все равны?


 
olookin ©   (2004-11-15 18:21) [17]

[16] Verg ©   (15.11.04 18:17)

Все одинаковое.


 
Sirakuz ©   (2004-11-15 18:22) [18]

Остановись в любом другом месте
Evaluate value (Ctrl-F7)
Туда впиши примерно это:
@MainFormName.Button1.OnClick
Там будет указатель на обработчик
Дальше жмёшь Alt-Ctrl-C - Вызываешь окно CPU;
Кликаешь в ассеблеррный листинг; Ctrl-G - Перейти на адрес. И вводишь в это окно свой адрес, который указатель на обработчик. Смотришь совпадает ли это с твоим исходным кодом. Вобщем анализируешь.


 
Verg ©   (2004-11-15 18:25) [19]


> Например, в другой форме ставлю брекпойнт на выражение:
>
> procedure TEQAPbase.MDFCorrector1Click(Sender: TObject);
> begin
>  CorrectorForm.Show; //breakpoint
> end;


А где и как она создается? CorrectorForm.


 
olookin ©   (2004-11-15 18:28) [20]

[18] Sirakuz ©   (15.11.04 18:22)

Ну, я не настолько крут, чтобы реализовать это, даже если мне предварительно все разжуют.

[19] Verg ©   (15.11.04 18:25)

В дизайнере создана. Не динамически т.е.


 
Плохиш ©   (2004-11-15 18:29) [21]


> olookin ©   (15.11.04 17:18) [15]
> [11] Плохиш ©   (15.11.04 14:09)
> Так в hex посмотреть не судьба?
>
> Объясни пожалуйста, что именно мне в Hex смотреть...

Открываешь pas-файл и смотришь: В файле должны встречаться только сочетания кодов #13#10, а не по-отдельности #13 или #10.


 
Verg ©   (2004-11-15 18:30) [22]


> В дизайнере создана. Не динамически т.е.


Ну так покажи как она создана.
В файле dpr это должно быть.


 
olookin ©   (2004-11-15 18:35) [23]

[21] Плохиш ©   (15.11.04 18:29)

Не встречается по отдельности.


 
olookin ©   (2004-11-15 18:37) [24]

[22] Verg ©   (15.11.04 18:30)

Это показать?

uses
...
 lookin10 in "lookin10.pas" {CorrectorForm},
...
 ;

{$R *.TLB}

{$R *.RES}

begin
 Application.Initialize;
...
 Application.CreateForm(TCorrectorForm, CorrectorForm);
...
 Application.Run;
end.


 
Плохиш ©   (2004-11-15 18:42) [25]

Ну что тут скажешь?
Выкладывай куда-нибуть свой "lookin10.pas", время будет посмотрим.


 
olookin ©   (2004-11-15 18:43) [26]

Хе-хе. Удалил я нафиг этот модуль и создал заново пустой с теми же именами. Брекпойнт заработал.


 
olookin ©   (2004-11-15 19:05) [27]

А вот тут я совершенно ничего не понимаю. Я нашел строку, комментирование которой включает таки брекпойнты. Строка находится в процедуре, которая не вызывается по нажатию на кнопку или из OnShow формы. Равно как не вызывается и при создании формы. Нигде, короче, не вызывается. Строка выглядит так:

 cc:="";

причем cc: array [0..65535] of char;

Поскольку я ничего не понял, то прошу рассказать мне, где тут ошибка и в чем она заключается. Сразу скажу, что неоднократно приравнивал пустой строке массивы Char и ни разу не видел такой реакции. Более того, в еще одном модуле массив такой же размерности, и туда по брекпойнту захожу без проблем.


 
Lin7   (2004-11-15 19:30) [28]

У меня подобные глюки пару раз вылезали под D7 (WinXP) + иногда проект просто не компилился - D7 вываливала ошибку. Помогало закрыть+открыть проект или перегрузить D7.


 
Alex_Petr ©   (2004-11-16 01:01) [29]

Было подобное ( тоже D7 (WinXP)).
Помогло:
Создал новый unit и вручную (Copy/Paste) перенес весь код.


 
olookin ©   (2004-11-16 08:33) [30]

[29] Alex_Petr ©   (16.11.04 01:01)
Помогло: Создал новый unit и вручную (Copy/Paste) перенес весь код.

А мне вот как раз это не помогло к сожалению.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.045 c
1-1100285777
CherrLy
2004-11-12 21:56
2004.11.28
Приравнять динамические переменные


11-1082825813
Max003
2004-04-24 20:56
2004.11.28
Что делать? Минимальный MCK проект(пустая форма) весит 25.5 кб


1-1100563093
dolphin
2004-11-16 02:58
2004.11.28
как с string добыть ansichar


14-1100366571
MeF88
2004-11-13 20:22
2004.11.28
VCL или Win API


14-1100275754
ppt
2004-11-12 19:09
2004.11.28
EasyRecovery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский