Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2012, 16:55   #1
Gangsta15
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 12
По умолчанию Отладка, как обнаружить строку с ошибкой

Есть несколько поток, в каждом несколько вложенных циклов, но на каком то круге в любом из потоков может быть ошибка, подскажите можно ли как то обнаружить номер строки после которой и выходит ошибка?
Gangsta15 вне форума Ответить с цитированием
Старый 06.02.2012, 17:45   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

ну вообще то компилятор показывает строку со ошибкой если вы не отключили это!
Кольша вне форума Ответить с цитированием
Старый 06.02.2012, 18:04   #3
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

в потоках нет
Pamparam вне форума Ответить с цитированием
Старый 06.02.2012, 18:08   #4
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

ну тогда выводите в memo после выполнения каждой процедуры текст
Кольша вне форума Ответить с цитированием
Старый 06.02.2012, 18:16   #5
Gangsta15
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 12
По умолчанию

Есть ли еще варианты?
Gangsta15 вне форума Ответить с цитированием
Старый 06.02.2012, 19:22   #6
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Цитата:
Сообщение от Кольша Посмотреть сообщение
ну тогда выводите в memo после выполнения каждой процедуры текст
речь о потоках, с них нельзя обращаться к виз компонентам если они не синхронизированы.
Или синхронизируй их или делай, например sendmessage в другое окно на некоторых шагах работы. Либо выводи showmessage, хоть это тоже виз. компонента и после этого вызова прога может обрушиться, у мну чаще всего вылазит сообщение о ошибке.
Pamparam вне форума Ответить с цитированием
Старый 06.02.2012, 20:44   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
Сообщение от Pamparam Посмотреть сообщение
в потоках нет
Что за бред.

Все показывает. Ставьте бряки в телах цикла и запускайте 1 поток.. далее f7, f8 и ловите баги..
Человек_Борща вне форума Ответить с цитированием
Старый 06.02.2012, 21:18   #8
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Вот такой вот бред. Ошибку показывает на функцию, вызываемую в потоке или на сам поток, но не на место самой ошибки
Pamparam вне форума Ответить с цитированием
Старый 06.02.2012, 22:01   #9
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Ошибку показывает на функцию, вызываемую в потоке или на сам поток, но не на место самой ошибки
Попробуй запусти, удивишься.

Код:
function Crash(NotUsed: Pointer): DWord; stdcall;
begin
  // Going to die
  PInteger(nil)^ := 0;

  Result := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  TID: Cardinal;
begin
  CloseHandle(CreateThread(nil, 0, @Crash, nil, 0, TID));
end;
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 06.02.2012, 22:14   #10
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как бороться с ошибкой E2016 Array type required Celestia Общие вопросы Delphi 4 18.11.2010 13:03
Нужно обнаружить ошибку. Паскаль. 10Rabbit Помощь студентам 6 08.05.2010 04:13
как обнаружить перевод строки... Old_Man_nsk Microsoft Office Excel 2 03.04.2009 16:55
Как при нажатии на строку в Listbox передавать нажатую строку в переменную Михаил Юрьевич Общие вопросы Delphi 5 16.03.2009 12:59
Помогите! Не могу обнаружить ошибку pilevas Помощь студентам 1 23.06.2008 10:48