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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.013 c
2-1214592890
Res
2008-06-27 22:54
2008.07.27
Recv


2-1214289700
petvv
2008-06-24 10:41
2008.07.27
После переброски Упаковка = #Z SZ#S = ??? (XP, D2007)


15-1212731985
oldman
2008-06-06 09:59
2008.07.27
А так ли уж нужна в жизни высшая математика?


15-1213180802
Petr V. Abramov
2008-06-11 14:40
2008.07.27
А есть ли тут кто из Серпухова?


2-1214466122
programmer90
2008-06-26 11:42
2008.07.27
импорт из Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский