crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Запуск приложения из под среды и не из под среды, когда запускаю exe-ник не работает 1 функция
Litkevich Yuriy
  опции профиля:
сообщение 1.11.2010, 21:07
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(mezmay @ 2.11.2010, 1:04) *
Ни на какой конкретный
конкретные в дереве помечаются и в списке, обычно красным цветом. В окне сообщения только резюме пишется
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 1.11.2010, 21:18
Сообщение #12


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


mezmay, у меня все работает. Проверял на Windows Vista Qt4.7.0
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 2.11.2010, 9:44
Сообщение #13


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Запустил релиз fancybrowser ИЗ ПОД Dependecy Walker'a.

РАБОТАЕТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

что теперь делать то? застрелиться?
почему экзешник то работать не хочет?
Что Dependecy Walker добавляет?

Сообщение отредактировал mezmay - 2.11.2010, 9:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 2.11.2010, 10:24
Сообщение #14


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Открыл справку Dependecy Walker'a. Там рассматривается случай когда приложение, запускаемое из под Dependecy Walker'a может работать лучше, чем запускаемое само по себе:

-----
Q: My application runs better when being profiled by Dependency Walker than when I run it by itself. Why is this?
A: I've had several reports of applications that normally crash, will not crash when being profiled under Dependency Walker. Dependency Walker acts as a debugger when you are profiling your application. This in itself, makes your program run differently.

First, there is the overhead of Dependency Walker that slows the execution of your application down. If your application is crashing due to some race condition, this slow down alone might be enough to avoid the race condition. If this is the case, it is a design issue of the application and you are just getting lucky when it doesn't crash.

Second, normally when threads block on critical sections, events, semaphores, mutexes, etc., they unblock on a first-in-first-out (FIFO) basis. This is not guaranteed by the OS, but is usually the case. When being run under a debugger, FIFO queues are sometimes randomized, so threads may block and resume in a different order than they would when not running under a debugger. This might be relieving a race condition or altering the execution enough to make things work. Again, the application is just getting lucky when it doesn't crash.

Finally, applications running under the debugger automatically get a system debug heap. All memory functions are handled slightly different. Allocations are padded with guard bytes to check to see if you are writing outside of a region you have allocated (buffer overrun/underrun). Allocations might also be laid out differently in memory then when not under the debugger. So, if you are writing past the end of a buffer under the debugger, you might be trashing guard bytes, freed memory, or just something not very critical. However, when not running under the debugger, you might be trashing something critical (like a pointer), and your app crashes.

For the debug heap, you can turn this off in Dependency Walker and see if your application crashes when being profiled. If it does then, then you probably suffer a buffer overrun, stray/bad/freed pointer, etc. To do this, start a command prompt. Type "SET _NO_DEBUG_HEAP=1". Then start Dependency Walker from that command line. This should disable the debug heap for that instance of Dependency Walker. Note, this only works on Windows XP and beyond.
-----

Отсюда я понял, что приложение в Dependecy Walker'e запускается в замедленном, отладочном режиме и с поддержкой system debug heap. Обработка всех функций памяти немного отличается. Вывод - ошибка в приложении, которая не проявляется в отладочном режиме и проявляется в боевом.
Еще там советуется отключить поддержку system debug heap, запустив Dependecy Walker из командной строки, установив параметр _NO_DEBUG_HEAP=1.
Запустил в таком режиме, и fancybrowser перестал корректно работать.

Что получается ? - глючит Qt?

Я использую Qt 4.6.3 под Windows XP. Переходить на 4.7.0 не вариант потому что 4.7.0 не работает с картами гугла, а мне это обязательно нужно

Сообщение отредактировал mezmay - 2.11.2010, 10:29
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 16:50