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

Вниз

Delphi глючит или я.   Найти похожие ветки 

 
@!!ex ©   (2007-07-30 11:43) [0]

Запускаю проект на Delphi.
Ставлю Brakepoint.. Он отмечается болотнозеленым цветом(дескать недоступен).
Нормально Brakepoint ы отрабатывают только если стоят в dpr, и еще в одном модуле.
Если на вызове функции описанной в другом модуле нажимаю f7, то Delphi показывает вызовы функций из которых состояит данная, а не саму функцию.
Тоесть у меня есть класс Environment:TEnvironment;
Procedure TEnvironment.Draw;
begin
 glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
 ...
end;

ПРи нажатии f7 на
 Environment.Draw;

Открывается модуль OpenGL.pas и там выделяется строчка
procedure glClear; external opengl32;

Что за фигня? Никак не пойму.
Причем заметил, что есть один модуль куда брэйки нормально ставятся, но почему тоже не понимаю.
Отлаживать ничего не могу. Жуть.
Ощущение такое, что модули просто не принадлежат проекту, хотя изминения в них отражаются на работе проекта.


 
DrPass ©   (2007-07-30 11:45) [1]

Оптимизация включена?


 
StriderMan ©   (2007-07-30 11:47) [2]

Project/build with run-time packages ?


 
jack128_   (2007-07-30 13:21) [3]

$D-  ???


 
Petr V. Abramov ©   (2007-07-30 13:32) [4]

.dsk сотри, иногда помогает


 
pasha_golub ©   (2007-07-30 13:38) [5]

{$D+} {$L+}

В модуле поставь. Некоторые сторонние компоненты это дело переключают


 
@!!ex ©   (2007-07-30 14:00) [6]

> [4] Petr V. Abramov ©   (30.07.07 13:32)

Буду дома - попробую.


> [5] pasha_golub ©   (30.07.07 13:38)

Нет ни формы, ни компонентов.


 
Паша 1   (2007-07-30 14:44) [7]

>procedure glClear; external opengl32;
похоже на первый взгляд на объявление процедуры из внешней dll-ки. только вот странное какое-то. не сталкивался


 
@!!ex ©   (2007-07-30 16:40) [8]

> [7] Паша 1   (30.07.07 14:44)

Может это потому что вы не работаете с 3D графикой, или если быть точнее с OpenGL.
Меня не смущает, что указывает на эту процедуру. Она действительно вызывается.
ТОлько вот так:
WinMAIN(Engine.dpr)->TEnvironment.Draw(EnvironmentUnit.pas)->glClear(OpenGL.pas)
Но когда я нажимаю F7 на строчке
Environment.Draw;
В модуле Engine.dpr
ТО перемещаюсь не в Draw, а сразу в OpenGL.pas.
Вот это меня напрягает, отладить ниче не получается...


 
X9 ©   (2007-07-30 16:56) [9]

> [7] Паша 1   (30.07.07 14:44)
> только вот странное какое-то. не сталкивался

Почему это странное? opengl32 - строковая константа.


 
Паша 1   (2007-07-30 17:02) [10]


> @!!ex ©   (30.07.07 16:40) [8]

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

потому как брекпоинт джолжен быть красного цвета и точки останова синенькие сбоку, обязательно. если их нет, то этот код не используется. а Ctrl+левая кнопка мыши в дизантайме шо показывает? правда, это не всегда работает.

короче, тут навскидку мне трудно


 
Паша 1   (2007-07-30 17:10) [11]


> X9 ©   (30.07.07 16:56) [9]

говорю ж - не сталкивался. а на кой она external? вообще такого зверя не видел external-константы. нетипитизированой. редкий, видать, зверь. хотя, не претендую на 100% знания языка. есть пробелы


 
@!!ex ©   (2007-07-30 17:28) [12]

Не. Проблема где то не в коде.
Исходники в нескольких вариантх не держу, разве что ответвления движка под разные проекты, но они отдельно лежат.
Проблема точно не в коде. Поскольку пострадал практически весь проект.
Я с ним пол года уже работаю и последнее время серьезных изменений не вносил. а Environment так и вообще уже месяц не трогал.
_________________________________
Ерунда какая то.
Удалил dsk - не помогло.
Поставил brakepoint, опять зеленый с красным крестиком.
Закомментил одну строчку, проверить, может модуль вообще не компилится, а используется, скажем dcu.
Изменения в проекте отобразились.
И после этого стали нормально brakepointы ставится и F7 нормально работает.


 
@!!ex ©   (2007-07-30 17:30) [13]

> а на кой она external?

Это значит что наде ее взять из dllки.
Это вроде стандартное обозначение для описания внешних функций.


 
Паша 1   (2007-07-30 17:34) [14]


> Это значит что наде ее взять из dllки

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


 
pasha_golub ©   (2007-07-30 17:45) [15]


> @!!ex ©   (30.07.07 14:00) [6]
>
>
> > [5] pasha_golub ©   (30.07.07 13:38)
>
> Нет ни формы, ни компонентов.


Скрипач, ты что дальтоник? Я тебе русским по серому пишу: "в начале модуля пропиши {$D+} {$L+}". Если слово "модуль" смущает, напиши в начале кода.


 
_Mike_   (2007-07-31 01:25) [16]


> Закомментил одну строчку, проверить, может модуль вообще
> не компилится, а используется, скажем dcu.
> Изменения в проекте отобразились.
> И после этого стали нормально brakepointы ставится и F7
> нормально работает.

DCU был без дебаг инфы. Почему - вопрос к дельфе. Обычно достаточно сделать Build удалив предварительно все DCU.

Еще случается что дельфя "забывает" пути к сырцам и юзает DCU - опятьже BP может не ствиться на функциях которые в DCU.



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

Форум: "Прочее";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.06 c
15-1185522868
Alkid
2007-07-27 11:54
2007.08.26
Зараза vs. Virtual Machine


15-1185732492
Yanis
2007-07-29 22:08
2007.08.26
Век живи, век учись!


15-1185199585
Алхимик
2007-07-23 18:06
2007.08.26
Идентификация композиции


15-1185215900
Cerberus
2007-07-23 22:38
2007.08.26
CMS


2-1186316550
hahol
2007-08-05 16:22
2007.08.26
id3teg





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