Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблеммы среды или Windows

16K
08 июня 2010 года
Djony
40 / / 28.04.2007
У меня такой прикол:

Как только я собираю чистый exe из проекта (выбрав соотв конфигурацию) и запускаю откомпилив и собрав решение то проект отрабатывает свои положенные действия! НО как только я запускю exe-шник отдельно, без среды, то он валиться!

У кого какие могут быть соображения?
1
08 июня 2010 года
kot_
7.3K / / 20.01.2000
Судя по заданному вопросу, ответ как бы очевиден - проблема не среды и не виндоус.
Обычно, те кто поуменее, кхм, формулируют вопрос следующим образом "Под отладчиком программа работает нормально ...". А самые сообразительные - используют точки останова (breakpoint) - причем все это до того, как написать на форум.
16K
08 июня 2010 года
Djony
40 / / 28.04.2007
хорошо, под отладчиком работает нормально, при запуске exe валится.

Breakpoints в екзешнике? ну просвятите меня плиз как это сделать в уже скомпилинной и собранной проге...
16K
08 июня 2010 года
Djony
40 / / 28.04.2007
ах да в эту же тему: идет поток в цикле выполняет определенное действие: чтение из файла и запись в другой файл, но в определенный момент времени (где то на половине процесса) валится - это как? почему одни и теже действия он выполняет определенное время нормально а потом падает? хотя при запуске по F5 в среде (под отладчиком) все отрабатывает на ура?
3
08 июня 2010 года
Green
4.8K / / 20.01.2000
1) buffer overflow
2) иная рабочая директори -> не находит файлов

код многопоточный?
и пока телепаты в отпуске, может приведешь код?
1
08 июня 2010 года
kot_
7.3K / / 20.01.2000
Цитата: Djony
хорошо, под отладчиком работает нормально, при запуске exe валится.

Breakpoints в екзешнике? ну просвятите меня плиз как это сделать в уже скомпилинной и собранной проге...


ну так сделайте это прежде чем утверждать, что ваша "прога" "скомпиллина" и "собрана". Хотя в чем проблема и что мешает вам отлаживать екзешник - я честно говоря хз.
За одно так же не поленитесь - макросы assert, обращение к невалидным указателям и т.п. найдите в своей программе. телепатией тут мало кто владеет.

1.9K
09 июня 2010 года
Rad87
123 / / 14.12.2005
Для локализации места вылета можно расставить по программе MessageBoxы или нечто похожее. Так выявляется блок после которого программа не работает. Затем в этом месте учащается расстановка сообщений для дальнейшей локализации.
3
09 июня 2010 года
Green
4.8K / / 20.01.2000
Цитата: Rad87
Для локализации места вылета можно расставить по программе MessageBoxы или нечто похожее. Так выявляется блок после которого программа не работает. Затем в этом месте учащается расстановка сообщений для дальнейшей локализации.


А DbgPrint не пробовали?

307
09 июня 2010 года
Artem_3A
863 / / 11.04.2008
Автор, черт возьми, ну хоть сообщение\код\скриншот ошибки покажи, бо так гадать бесполезно.
1.9K
09 июня 2010 года
Rad87
123 / / 14.12.2005
Цитата: Green
А DbgPrint не пробовали?


под словами "или нечто похожее" подобные функции имелись в виду :)

для того что бы воспользоваться DbgPrint нужно установить DDK. Есть другой способ вывода в окно Output в VS ?

3
09 июня 2010 года
Green
4.8K / / 20.01.2000
Цитата: Rad87

для того что бы воспользоваться DbgPrint нужно установить DDK. Есть другой способ вывода в окно Output в VS ?


Для того, чтоб воспользоваться DbgPrint нужно установить Win32 API (Kernel32.dll) :D
OutputDebugString

14
10 июня 2010 года
Phodopus
3.3K / / 19.06.2008
Цитата: Rad87
Есть другой способ вывода в окно Output в VS ?


Можно воспользоваться ATL/MFC-specific макросом TRACE(). В итоге он приведет к тому о чем говорит Green. Но в релиз-версии этот вызов будет удален.

1.9K
10 июня 2010 года
Rad87
123 / / 14.12.2005
Цитата: Green
Для того, чтоб воспользоваться DbgPrint нужно установить Win32 API (Kernel32.dll) :D
OutputDebugString



OutputDebugString у меня заработал. Теперь буду им пользоваться :)

По поводу DbgPrint. Эта функция объявлена в ntddk.h котовый не входит в стандартную поставку. я прав? При чем тут Kernel32.dll?

3
10 июня 2010 года
Green
4.8K / / 20.01.2000
Цитата: Rad87
OutputDebugString у меня заработал. Теперь буду им пользоваться :)

По поводу DbgPrint. Эта функция объявлена в ntddk.h котовый не входит в стандартную поставку. я прав? При чем тут Kernel32.dll?



При том, что DbgPrint я подразумеваю ф-ции, которые работают через OutputDebugString, которая в свою очередь находиться в kernel32.
Не нужно устанавливать ddk, чтоб ею воспользоваться. Можно использовать тот же OutputDebugString, TRACE или написать свою обертку, если это действительно надо.

1.9K
10 июня 2010 года
Rad87
123 / / 14.12.2005
теперь ясно))
14
10 июня 2010 года
Phodopus
3.3K / / 19.06.2008
Ну и подводя итог - функция с точным именем DbgPrint находится в библиотеке ntdll.dll и используется для
[QUOTE=MSDN]Only kernel-mode drivers can call the DbgPrint routine.[/QUOTE]
отладки драйверов
63
10 июня 2010 года
Zorkus
2.6K / / 04.11.2006
Цитата: Rad87
Для локализации места вылета можно расставить по программе MessageBoxы или нечто похожее. Так выявляется блок после которого программа не работает. Затем в этом месте учащается расстановка сообщений для дальнейшей локализации.


Мессажбоксы, выстреливающие изнутри цикла, заполняющие экран со скоростью пулеметной очереди? Что за бред!

Используйте запись в лог файл + пошаговую отладку с просмотром значений всех переменных и прочее.

3
10 июня 2010 года
Green
4.8K / / 20.01.2000
Цитата: Phodopus
Ну и подводя итог - функция с точным именем DbgPrint находится в библиотеке ntdll.dll и используется для

отладки драйверов



А у меня с точным именем DbgPrint находится в файле собственного написания, сделано через OutputDebugString и используется в User-Mode.
Пардон, что сразу не привел Win32 API ф-цию,которая она использует, но исправился ниже.
Сути дела это не меняет - есть способ выводить в debug output и не использовать MessageBox.

1.9K
11 июня 2010 года
Rad87
123 / / 14.12.2005
Цитата: Zorkus
Мессажбоксы, выстреливающие изнутри цикла, заполняющие экран со скоростью пулеметной очереди? Что за бред!

Используйте запись в лог файл + пошаговую отладку с просмотром значений всех переменных и прочее.



Ну что вы прям налетели... я просто предложил один из вариантов, который требует написания не много дополнительного кода....
По поводу пошаговой отладки.... вопрос был в том что необходимо тестировать программу без использования IDE.

63
11 июня 2010 года
Zorkus
2.6K / / 04.11.2006
Цитата: Rad87
Ну что вы прям налетели... я просто предложил один из вариантов, который требует написания не много дополнительного кода....
По поводу пошаговой отладки.... вопрос был в том что необходимо тестировать программу без использования IDE.


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

14
11 июня 2010 года
Phodopus
3.3K / / 19.06.2008
Цитата: Green
А у меня с точным именем DbgPrint находится в файле собственного написания


да это топикстартеру написал, за тебя мы спокойны ;)

Цитата: Zorkus
В хороших IDE очень много очень полезных возможностей для отладки.


и порой очень мало структурированной информации по ним...(

63
11 июня 2010 года
Zorkus
2.6K / / 04.11.2006
Гм? Help по Visual Studio / MSDN недостаточно полон?
14
15 июня 2010 года
Phodopus
3.3K / / 19.06.2008
Цитата: Zorkus
Гм? Help по Visual Studio / MSDN недостаточно полон?


Ну, во-первых же, мир не ограничивается VS. И хочется (возможно я плохо выразился) именно профессионального "книжного" обозрения всех возможностей. MSDN для меня слишком сух и да, действительно, порой неполон.

5
15 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Phodopus
MSDN для меня слишком сух и да, действительно, порой неполон.


Он как бы охренительно неполон, например касаемо драйверов. :rolleyes:

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог