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

Ваш аккаунт

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

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

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

Debug & Optimization

32K
21 января 2008 года
jackie
7 / / 21.01.2008
Привет всем!
Eсть проблема:
Debug & Optimization
VS2005 : Build в Debug-моде при включении любой оптимизации, напр.
"Inline Function Expantion" выдает ошибку:
'/Ob2' and '/ZI' command-line options are incompatible !!!
ХОТЯ в MSDN - "Debug Optimized Code" все прописано, как должно быть!
А ведь в C-Builder'е - без проблем!
Кто нибудь знает в чем тут дело?
Может че-то где-то надо прописать?
398
21 января 2008 года
Alexandoros
630 / / 21.10.2005
'/Ob2' - где ты там увидел этот ключ?
32K
21 января 2008 года
jackie
7 / / 21.01.2008
Читай MSDN : "Inline Expansion"
Всего...!
398
22 января 2008 года
Alexandoros
630 / / 21.10.2005
Цитата: jackie
Читай MSDN : "Inline Expansion"
Всего...!


Нах оно мне? У меня проблема что-ли?

Я расширю свой вопрос, для одаренных.
Где ты в
[QUOTE=jackie;]
в MSDN - "Debug Optimized Code" все прописано, как должно быть!
[/QUOTE]
увидел возможность использования '/Ob2' в дебуг версии?

32K
22 января 2008 года
jackie
7 / / 21.01.2008
MSDN:
Visual Studio Debugger
How to: Debug Optimized Code
To turn on optimization in a Debug build configuration:
When you create a new project, select the Win32 Debug target. Use the Win32 Debug target until your program is fully debugged and you are ready to build a Win32 Release target. The compiler does not optimize the Win32 Debug target.

Select the project in Solution Explorer.

On the View menu, click Property Pages.

In the Property Pages dialog box, make sure Debug is selected in the Configuration drop-down list box.

In the folder view on the left, select the C/C++ folder.

Under the C++ folder, select Optimization.

In the properties list on the right, find Optimization. The setting next to it probably says Disabled (/Od). Choose one of the other options (Minimum Size (/O1), Maximum Speed (/O2), Full Optimization (/Ox), or Custom).
(this result to "Command line error D8016 : '/Ox' and '/ZI' command-line options are incompatible")

If you chose the Custom option for Optimization, you can now set options for any of the other properties shown in the properties list.

When debugging optimized code, look at the Disassembly window to see what instructions are actually created and executed.
398
22 января 2008 года
Alexandoros
630 / / 21.10.2005
Я чесно не могу понять как оно тебе будет показывать номера строк при включенной оптимизации, потому как код там может ОЧЕНЬ СИЛЬНО отличатся от дебуга. Настолько сильно что при изучении асм кода ты просто не увидиш своих сишных конструкций вообще.

MessageBox, OllyDbg тебе в помощь.
3
22 января 2008 года
Green
4.8K / / 20.01.2000
Цитата: jackie
Привет всем!
Eсть проблема:
Debug & Optimization
VS2005 : Build в Debug-моде при включении любой оптимизации, напр.
"Inline Function Expantion" выдает ошибку:
'/Ob2' and '/ZI' command-line options are incompatible !!!
ХОТЯ в MSDN - "Debug Optimized Code" все прописано, как должно быть!
А ведь в C-Builder'е - без проблем!
Кто нибудь знает в чем тут дело?
Может че-то где-то надо прописать?


При чем тут C-Builder?

Попробуем рассуждать логически.
Что значит ключ /ZI:
[quote=MSDN]
/ZI Produces a program database, as described above, in a format that supports the Edit and Continue feature. If you want to use Edit and Continue debugging, you must use this option. Because most optimizations are incompatible with Edit and Continue, using /ZI disables any #pragma optimize statements in your code.
[/quote]
Ну и действительно, как ты себе представляешь дебаг-инфо поддерживающий изменение кода в процессе отладки и оптимизацию? :)

Почему бы не заменить /ZI на /Zi ?

32K
22 января 2008 года
jackie
7 / / 21.01.2008
Ха! Так это мне как раз и интересует. Чтобы делать оптимальный код, тюнинг конечно очень помогает, но посмотреть на ASM-код куда полезнее. Мне это понятнее, т.к. имею большой опыт писания на ассемблере. В принципе дезасм доступен и в релизе, нет проблем. Но как включить его в нужной точке - не знаю, брейкпоинты не фурычат.
Спасибо за сочуствие.
3
22 января 2008 года
Green
4.8K / / 20.01.2000
Цитата: jackie
брейкпоинты не фурычат.
Спасибо за сочуствие.


"Фурычат" в Disassembly Window (Alt+8).

1.6K
22 января 2008 года
Vov4ick
476 / / 01.02.2007
asm { int 3 }
32K
22 января 2008 года
jackie
7 / / 21.01.2008
Ok! с /Zi все что надо функционирует. Сразу не дошел. Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог