Но проверял я тогда, когда ты про это и написал.
TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount
Модератор: Модераторы
Ну и оказывается в логи пишет после закрытия приложения... А я смотрел что пока меняю размеры формы - в логе ничего не появляется.
Но проверял я тогда, когда ты про это и написал.
Но проверял я тогда, когда ты про это и написал.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
jakyro писал(а): так как возможно эти предупреждения отключены при сборке без -WG,
Если посмотреть настройки, то можно заметить настройки вывода отладочных сообщений...и кучу разных настроек показа/скрытия отдельных типов сообщений. Но для этого надо иметь в екзешнике отладочную информацию
jakyro писал(а):Дело в том, что возможно при сборке с -WG вывод этих сообщений отрубается и то что нету ничего в логах - ничего не значт.
Эта опция всего лишь переключает тип собираемого приложения консоль/графическое приложение. На выхлоп она влияет слабо.
Добавлено спустя 52 секунды:
jakyro писал(а):Ну и оказывается в логи пишет после закрытия приложения...
а ДО этого они и не нужны.
ок. с тебя разборки и багрепорт.
или снова это слишком дорого тебе?
или снова это слишком дорого тебе?
Лекс Айрин писал(а):а ДО этого они и не нужны.
Нужны, чтобы отследить конкретный момент, когда было выдано предупреждение, при каких действиях.
Вот с консолью я это смог сделать. У меня было большое приложение, где куча всего, я думал что это у меня уже ссылки затерялись, утечка памяти в моём чудо валидатори или ещё где-то, а оказалось это дерево странное...
Запустил приложение, ждал пока вновь выведет это сообщение, но не выводило, начал добавлять пункты динамически, но ничего не происходило, не мог понять когда это происходит и однажды решил поменять размеры формы, или переместил её, и вот получил результат ДО закрытия программы, в конкретный момент времени, когда я совершал конкретные действия, которые смог тут описать...
>>Ну и оказывается в логи пишет после закрытия приложения..
Наврятли по закрытию, скорее всего сильно кэшируется. хотя я не проверял
Наврятли по закрытию, скорее всего сильно кэшируется. хотя я не проверял
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
jakyro писал(а):Нужны, чтобы отследить конкретный момент, когда было выдано предупреждение, при каких действиях.
тогда ShowMessage
zub писал(а):ок. с тебя разборки и багрепорт.
или снова это слишком дорого тебе?
Та напишу там что-нибудь. Май инглишь из пёрфейкт ай кен врайте что-нибудь он зе репорт.
zub писал(а):Наврятли по закрытию, скорее всего сильно кэшируется. хотя я не проверял
Опять меня в смуту вводишь. Я перепроверил... С минуту передёргивал окно, ничего в логе не появлялось. Как закрыл, так сразу появилось.
Ну мож лог ждёт большего стака символов, строк для вывода, а не пишет конкретно при закрытии.
Лекс Айрин писал(а):тогда ShowMessage
Что ShowMessage?
Я ведь объяснил. Тут ты под конец работы программы получаешь пачку предупреждение, непонятно когда выданных в лог.
А в консольном режиме ты в реальном времени получаешь предупреждения.
Причём тут ShowMessage? Мне в ShowMessage выдаст предупреждение? То что ShowMessage помогает что-то отследить, проверить - это да, но мне нужно получить строку предупреждения и определить момент её получения, а не просто получить пачку логов...
Просто подрубить консоль без -WG, туда выводится всё и всё нормально. Как вон уже выяснилось это возможно баг, который работает в обоих сборках, а не конкретно -WG... И значит обе эти сборки ничем не отличаются и так можно собирать. А то тут писали что нельзя с консолью приложение делать -_-
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
jakyro писал(а):Что ShowMessage?
Хочется и рыбку съесть и шкурку сдать? ShowMessage позволит отследить ветку. (ну и есть шанс, что покажутся закешированные логи.).
jakyro писал(а): Как вон уже выяснилось это возможно баг, который работает в обоих сборках, а не конкретно -WG... И значит обе эти сборки ничем не отличаются и так можно собирать.
Тут не верное логическое умозаключение. Из посылки, что баг в обоих ветках еще не следует, что сборки полностью равноценны и в остальных позициях. Они предназначены для разных операционок. (или режимов работы) Возможно, что в консольном режиме того же Линукса оконный менеджер, отображающий это дерево, просто не загружается. И программа вылетит.
Лекс Айрин писал(а):Хочется и рыбку съесть и шкурку сдать? ShowMessage позволит отследить ветку. (ну и есть шанс, что покажутся закешированные логи.).
Хочется узнать в какой момент времени, при каких действиях было выдано предупреждение. Это позволяет сделать запуск в консольном режиме.
Лекс Айрин писал(а):Тут не верное логическое умозаключение. Из посылки, что баг в обоих ветках еще не следует, что сборки полностью равноценны и в остальных позициях. Они предназначены для разных операционок. (или режимов работы) Возможно, что в консольном режиме того же Линукса оконный менеджер, отображающий это дерево, просто не загружается. И программа вылетит.
Кроссплатформенность меня волнует меньше всего. Возможно, когда-нибудь, может быть, зачем-то соберу и под другие ОС, но если будут проблемы в консольном режиме, как ты говоришь, то будет только сборка в графическом...
Но вряд ли. Скорей всего так же будет работать и под линукс, что в консольном режиме, что в графическом.
Вообще как-то не правильно разделять эти режимы. Ведь всё равно обе сборки - имеют графический интерфейс. Просто одна сборка в добавок ещё и консоль имеет, вывод сообщений в консоль...
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
jakyro писал(а):Хочется узнать в какой момент времени, при каких действиях было выдано предупреждение. Это позволяет сделать запуск в консольном режиме.
На самом деле, НЕ позволяет. Есть кеширование вывода, есть некий временной лаг на отображение результата.... да куча разных моментов.
jakyro писал(а):Вообще как-то не правильно разделять эти режимы. Ведь всё равно обе сборки - имеют графический интерфейс. Просто одна сборка в добавок ещё и консоль имеет, вывод сообщений в консоль...
Да нет, все правильно. Причина в структуре современных осей (на винду не смотрим, они просто не сумели добиться нормальной многозадачности ДОС режима, да и с практической точки зрения разницы никакой).
Нормальным режимом работы является как раз таки консольный, а в случае использования библиотеки визуальных компонент есть галочка (опция) наличия графического режима. То есть, ничто теоретически не мешает запустить дос-программу в винде, хотя практически мешает немного кривая реализация и/или проверка на эмуляцию терминала. И, вообще-то, консольная программа не должна иметь окна -- его наличие есть трюк возможный из-за особенностей реализации.
Лекс Айрин писал(а):На самом деле, НЕ позволяет. Есть кеширование вывода, есть некий временной лаг на отображение результата.... да куча разных моментов.
Ну позволила ведь консоль мне отследить момент вывода предупреждения и мои действия во время вывода предупреждения...
И выводит без каких-то задержек, в отличии от записи лога в файл, который так и не записался, пока я не закрыл программу.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
jakyro писал(а):И выводит без каких-то задержек, в отличии от записи лога в файл, который так и не записался, пока я не закрыл программу.
То, что сообщения выводятся быстрее еще не означает, что они обязательно выводятся вовремя. Да и того, что они соответствуют тем местам кода, которые нужны. Есть ведь куча кода, который слабо ассоциирован с визуальными компонентами -- например, таймер, прерывания, поддержка строк...
Вообще, лог должен анализироваться долго и вдумчиво, а не на лету. особенно в досовских программах, т. к. вывод в консоль может быть прикрыт псевдографическим интерфейсом.
>>Опять меня в смуту вводишь. Я перепроверил...
перепроверять надо както так:
Действительно вывод лога буферезированый. Предлагаю почитать вику и выяснить - возможно есть какиенить ключики отключающие буферизацию?
перепроверять надо както так:
Код: Выделить всё
uses
..LazLogger..
...
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to 999 do
begin
debugln('count: %d',[c]);
inc(c);
end;
end;
...Действительно вывод лога буферезированый. Предлагаю почитать вику и выяснить - возможно есть какиенить ключики отключающие буферизацию?
Лекс Айрин писал(а):То, что сообщения выводятся быстрее еще не означает, что они обязательно выводятся вовремя. Да и того, что они соответствуют тем местам кода, которые нужны. Есть ведь куча кода, который слабо ассоциирован с визуальными компонентами -- например, таймер, прерывания, поддержка строк...
Вообще, лог должен анализироваться долго и вдумчиво, а не на лету. особенно в досовских программах, т. к. вывод в консоль может быть прикрыт псевдографическим интерфейсом.
Означает то, что сообщения выводятся быстрей чем пишутся в файл, так как там вон буферизация, не буферизация, нужно отключать что-то, включать...
Так как тут непосредственно пишется в консоль. Что ты хочешь доказать? Что лучше ждать пока программа кинет лог в файл? Та однозначно лучше поймать в консоли.
Та и удобней просто смотреть в консоли всё то, что выводится. Ты файл хочешь навязать или что?
Если хочешь там что-то с ShowMessage навязать, то ShowMessage тут не причём. В ShowMessage ты выводишь какой-то конкретный результат, а мне нужно посмотреть предупреждение, которое выдала программа...
Добавлено спустя 2 минуты 43 секунды:
zub писал(а):перепроверять надо както так:
Нет. Я перепроверял именно две строки, так как именно в той ситуации в файл ничего не записалось и я подумал, что лог пуст.
Я перепроверял, воссоздавал именно ту ситуацию, при которой лог был пуст и я подумал что никаких сообщений не выдало, закрыл папку и программу, после чего она записала лог, когда я уже за ним не наблюдал.
А ты опять ищешь тему пофлудить.
>>Нет. Я перепроверял именно две строки
Я имел ввиду проверку бферизация или запись по закрытию программы.
>>А ты опять ищешь тему пофлудить.
Все бы так флудили)) помоему единственные посты в тему тут мои))
Напомнил про былое? будь добр закрой тему отписавшись там:
- да способ есть и он проходит все проверки из того топика
- нет, ничего придумать неудалось
Я имел ввиду проверку бферизация или запись по закрытию программы.
>>А ты опять ищешь тему пофлудить.
Все бы так флудили)) помоему единственные посты в тему тут мои))
Напомнил про былое? будь добр закрой тему отписавшись там:
- да способ есть и он проходит все проверки из того топика
- нет, ничего придумать неудалось
