-
novarm (19.03.13 01:42) [0]Здравствуйте,
Начал перевод приложения на Delphi XE3. Программа достаточно объемная и некоторые алгоритмы занимаю много времени или могут уйти в бесконечный цикл. В Delphi 5 просто ставил программу на паузу и дальше пошагово смотрел что случилось. XE3 выкидывает окно процессора и к исходникам достучаться нереально (process is not accessible) - перепробовал уже включать какие только есть опции дебага, но ничего не получилось. Если после останова просто поставить курсор где либо в ошибочном цикле и нажать F4 - потом можно все отлаживать, а если у тебя пару тысяч строчек кода и ты не знаешь где зациклилось, то как узнать не совсем понятно. Знакомый говорит известная проблема - ищи в интернете, но то что нашел (включение опций в дебаггере) не помогло. -
novarm (19.03.13 01:45) [1]Trace to Next Source Line, View Source code, F8 до чего-либо вразумительного не помогают - вешается или улетает в область с прочерками (программа при этом просто запускается и работает дальше без выхода на исходник)
-
O'ShinW © (19.03.13 10:22) [2]сначала тут почитайте
http://alexander-bagel.blogspot.ru/2012/10/debugger-1.html.html -
Rouse_ © (19.03.13 10:35) [3]Вариантов несколько.
Если тормознулся внутри CPU-View опять запусти процесс и снова нажми на паузу до тех пор пока не увидишь что одна из нитей остановилась внутри одного из известного тебе модуля.
Например http://rouse.drkb.ru/tmp/1.png
Когда это произойдет окно стека вызовов примет нормальный вид:
http://rouse.drkb.ru/tmp/2.png
После чего уже можешь трассировать как надо.
Второй вариант, открой модуль getmem.inc и поставь бряк в начале например procedure Move12 -
bems © (20.03.13 02:22) [4]а что в окне стека? если нормально отображается, можно найти там ближайшую точку, принадлежащую твоему исходнику, перейти к ней в редакторе и поставить бряк где нужно