Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.27;
Скачать: CL | DM;

Вниз

Debuging troubles   Найти похожие ветки 

 
savyhinst ©   (2008-06-24 14:22) [0]

Здраствуйте.
У меня тут траблы с дебаггингом - просто жесть. Ошибка "List index out of bounds возникает у меня будто-бы
program pro;

uses
 Forms,
 mainform in "mainform.pas" {frm_TetrisForm},

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(Tfrm_Form, frm_Form);
 Application.Run;
end. <<ЗДЕСЬ!!! =:]
Так показывает дебаггер. Как бороться?? Как узнать, где на самом деле возникает ошибка?? Никаких своих dll я не подключал, у меня вроде-бы всё в одном. Подскадите пожалуйста.
Спасибо за внимание.


 
Плохиш ©   (2008-06-24 14:23) [1]


> где на самом деле возникает ошибка??

В mainform.pas


 
hinst   (2008-06-24 14:35) [2]

У меня еще есть там куча юнитов. И, скорее всего, ошибка в них *CRAZY*


 
savyhinst ©   (2008-06-24 14:53) [3]

Так как же выловить ошипку?


 
Milk   (2008-06-24 14:54) [4]


> savyhinst ©   (24.06.08 14:22)  

Что у тебя в FormCreate, FormActivate, FormShow?


 
savyhinst ©   (2008-06-24 14:58) [5]

ошибка вылетает после нажатия на кнопку

procedure Tfrm_Form.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 tman.OnKeyDown(key);
 WriteLog("OnKeyDown - all done");
end;
>>и тут же ошибка, так как "OnKeyDown - all done"  -  последнее, что есть в логе


 
Плохиш ©   (2008-06-24 14:59) [6]


> savyhinst ©   (24.06.08 14:58) [5]

Рекомендую всё-таки ознакомиться с возможностями встроенного в делфи отладчика.


 
savyhinst ©   (2008-06-24 15:02) [7]

Я с ними знаком =:S


 
Плохиш ©   (2008-06-24 15:09) [8]


> savyhinst ©   (24.06.08 15:02) [7]
> Я с ними знаком =:S

Судя по этой ветке и тем более по [5] - "слышал звон..."


 
Palladin ©   (2008-06-24 15:10) [9]


> Так как же выловить ошипку?

начни с ее локализации


 
Amoeba ©   (2008-06-24 15:11) [10]


> savyhinst ©   (24.06.08 15:02) [7]
>
> Я с ними знаком =:S

Когда врешь, надо подпрыгивать!

P.S. А ошибку ищи в 17-й строке своего кода.


 
savyhinst ©   (2008-06-24 15:13) [11]

*С локализации, это как?
*Я не вру 8-]


 
Amoeba ©   (2008-06-24 15:17) [12]


> savyhinst ©   (24.06.08 15:13) [11]
>
> *С локализации, это как?
> *Я не вру 8-]

Это уже клинический случай.


 
savyhinst ©   (2008-06-24 15:18) [13]

Amoeba ©  [12]
Вы не правы. 8-]


 
savyhinst ©   (2008-06-24 15:25) [14]

Хм. Лично я обычно ловлю ошибки так: если есть неуловимая ошибка, то после каждой строчки ошибкоподозрительного кода я вставляю
WriteLN(logfile,"action - done"); flush(logfile);
Это обычно помогает точно узнать, где у меня ошибка. У кого-нибудь есть мнения на этот счёт?


 
savyhinst ©   (2008-06-24 15:26) [15]

только, ессно, слово action заменяю на описание того, что именно сделано


 
Milk   (2008-06-24 15:32) [16]

На какой строке по F9 возникает List index out of bounds.
А лучше пройдись по F8 (тебе говорят об отладке, а ты отпихиваешься, типа мол сам все знаю).


 
savyhinst ©   (2008-06-24 15:39) [17]

ХЭЛП.
Жму F8:

begin
 Application.Initialize;
 Application.CreateForm(Tfrm_TetrisForm, frm_TetrisForm);
 Application.Run;
end.

Жму F8:
begin
 Application.Initialize;
 Application.CreateForm(Tfrm_TetrisForm, frm_TetrisForm);
 Application.Run;
end.

Жму F8:
begin
 Application.Initialize;
 Application.CreateForm(Tfrm_TetrisForm, frm_TetrisForm);
 Application.Run;
end.

Жму F8:
begin
 Application.Initialize;
 Application.CreateForm(Tfrm_TetrisForm, frm_TetrisForm);
 Application.Run;
end.

Жму F8:

тут форм появляется и начинает что-то показывать

Жму F8:

begin
 Application.Initialize;
 Application.CreateForm(Tfrm_TetrisForm, frm_TetrisForm);
 Application.Run;
end. <<и отладчик говорит, что эксцепшн тут


 
savyhinst ©   (2008-06-24 15:55) [18]

хэлп!!! как откопать ашипку? можбыть, кто-нибудь знает? наверняка кто-нибудь из вас знает некоторые приёмы нахождения не3аметных ошибок?


 
McSimm ©   (2008-06-24 15:57) [19]

поставьте точки прерывания в процедурах (обработчиках событий)


 
Поросенок Винни-Пух ©   (2008-06-24 15:59) [20]

найди парные квадратные скобки. там и есть твоя ошибка.


 
Palladin ©   (2008-06-24 16:00) [21]


> savyhinst ©   (24.06.08 15:55) [18]

ты ЭТО называешь незаметной ошибкой??


 
savyhinst ©   (2008-06-24 16:17) [22]

>>[21]
да, так как не видно, где она возникает


 
Palladin ©   (2008-06-24 16:23) [23]

а разве не ясно, что где то на этапе создания формы?


 
Milk   (2008-06-24 16:33) [24]

> Palladin ©   (24.06.08 16:23) [23]
Сначала я тоже так подумал, однако ошибка возникает после нажатия любой клавиши (судя по [5] ошибка вылетает после нажатия на кнопку).
Не исключено что, ошибка связана с тем, что автор обращается к какому-нибудь еще не "сформированному" VCL с ItemIndex:= -1;.


 
savyhinst ©   (2008-06-24 16:34) [25]

нет. Почему это? Она же запускается! И показывается. И рисуется.


 
savyhinst ©   (2008-06-24 16:35) [26]

Хэлп. ошибка возникает у меня на нажатие пробела! На него я повесил свой обработчик. И ошибку искал в нём. Но как показал опыт, весь form.OnKeyDown работает нормально, а ошибка возникает сразу после него


 
McSimm ©   (2008-06-24 16:38) [27]

OnKeyUp ?


 
Тын-Дын ©   (2008-06-24 16:40) [28]


> savyhinst ©   (24.06.08 15:39) [17]
> ХЭЛП.
> Жму F8:

Кроме F8, есть ещё F7.


 
Palladin ©   (2008-06-24 16:43) [29]


> savyhinst ©   (24.06.08 16:34) [25]

ну а какого ты мозги паришь всем и себе в том числе? как тебя кроме как балбесом не назвать? теперь оказываеть искать нужно в реакции на пробел


 
Palladin ©   (2008-06-24 16:45) [30]

поди еще и таймеры есть...


 
Amoeba ©   (2008-06-24 16:45) [31]


> savyhinst ©   (24.06.08 16:35) [26]
>
> Хэлп. ошибка возникает у меня на нажатие пробела! На него
> я повесил свой обработчик. И ошибку искал в нём. Но как
> показал опыт, весь form.OnKeyDown работает нормально, а
> ошибка возникает сразу после него

Может свой глючный код покажешь, в конце-коцов, честному народу? Или на телепатов уповаешь?


 
Поросенок Винни-Пух ©   (2008-06-24 16:56) [32]

лучше не надо никакого кода.
:)


 
Тын-Дын ©   (2008-06-24 17:18) [33]

Ну что человека гнобите? Не умеет он с отладчиком работать, так научить надо.


 
Поросенок Винни-Пух ©   (2008-06-24 17:23) [34]

стебаться он зато прекрасно умеет


 
savyhinst ©   (2008-06-24 17:29) [35]

хм. Так кто-нибудь может подсказать, как заставить отладчика увидеть ошибку там, где именно она возникает? Просто хочется, чтобы он увидел "List index out of bounds (0)" не в слове "end." , а в строке с обращением к элементу массива.


 
Поросенок Винни-Пух ©   (2008-06-24 17:30) [36]

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


 
savyhinst ©   (2008-06-24 17:33) [37]

у меня таких мест очень много; cмотреть - непересмотреть =:-0


 
Поросенок Винни-Пух ©   (2008-06-24 17:33) [38]

ну вот пересмотришь все - тогда и приходи. а щас не парь мозг людям.


 
savyhinst ©   (2008-06-24 17:35) [39]

хм. А что, отладчик разве не должен определить, где оно происходит?


 
Palladin ©   (2008-06-24 17:36) [40]

должен, но ты и ему запарил )



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

Текущий архив: 2008.07.27;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.021 c
15-1213101506
Slider007
2008-06-10 16:38
2008.07.27
С днем рождения ! 10 июня 2008 вторник


10-1148469511
AbrosimovA
2006-05-24 15:18
2008.07.27
Как прочитать сгенерированное сообщение по останову сервиса


2-1214562652
kazar
2008-06-27 14:30
2008.07.27
помогите алгоритмом


2-1214410294
Анониммм
2008-06-25 20:11
2008.07.27
Как загрузить иконку файла?


2-1214447178
AlexAA
2008-06-26 06:26
2008.07.27
Как отправить письмо по электронной почте?