Войти
ПрограммированиеФорумОбщее

Отладчик Visual Studio (4 стр)

Страницы: 1 2 3 4 5 Следующая »
#45
16:22, 7 мар. 2014

asvp
> Экономите на спичках?
Ну как, почти раза в 2 получается экономия размера. Но когда я только это начал делать, разница была в 3 раза, так как движок был меньше.

asvp
> А вы как CRT к своему проекту цепляете? Статически или динамически (/MT или
> /MD)?
Ну когда статические, то большой размер exe, а когда динамически, то зависимость от редиски. А сторонняя CRT - маленький размер и нет зависимостей.

asvp
> Если статические и появляются зависимости от MSVC++ Redistributable, то кто-то
> другой (DLL, например, которую вы используете) значит использует MSVC++
> Redistributable.
Нет, я сторонние библиотеки вообще не использую. Оказалось, что почти всё можно делать средствами, встроенными в винду, а остальное написать самому.

FireFenix
> ставить глобальный обработчик исключений и эту канитель с Си исключениями и
> иницирует crt лабуду типа потоков.
Вот про это в исходниках я вообще ничего не нашёл. Тогда я использовал то ли 2005 студию, то ли 2008.

FireFenix
> Небось ещё вот эту https://github.com/leepa/libctiny юзаешь, не?
Нет, я же писал, что я динамически линкуюсь к msvcrt.dll, которая встроена в Windows начиная ещё с Windows 2000. А сторонние мелкие CRT никогда не использовал, только в исходники подглядывал, когда свою пытался сделать.

Оказывается, в той CRT синусы помедленнее, чем в студийной 120. Генерация звука у меня на ней занимала 320 мс, а на стандартной - 265 мс. С SSE2 - 230 мс. А с включённой оптимизацией по скорости вместо минимального размера - 170 мс. Итого, exe'шник вырос в 2,4 раза, а скорость всего в 1,9 раз. От желаемых 5 раз далековато.
С AVX программа вообще падает с illegal instruction. Наверное в AMD он появился совсем недавно, а моему нетбуку с AMD уже 2 года.
А почему нельзя выбрать SSE3, SSSE3, SSE4?


#46
17:18, 7 мар. 2014

>Qt (суки) зависит от msvcrt100.dll
можно скачать qt base src и собрать как угодно.На практике у меня vs 2005 не собрала а 2008 минут за 15.

#47
17:02, 9 мар. 2014

Оформил свои контейнеры в виде проекта:
http://www.gamedev.ru/projects/forum/?id=186889

#48
12:16, 31 мар. 2014

А у меня вопрос. Сейчас только потребовалось свою визуализацию сделать. Решил для начала опробовать с левой структурой. Создал структуру:

+ Показать

XML-файл с представлением следующий:

+ Показать

Данный файл файл обзывал Rect.natvis. Кидал его и в C:\Users\Sergei\Documents\Visual Studio 2013\Visualizers\ и в C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Packages\Debugger\Visualizers\ (у меня Microsoft Visual Studio 2013 Professional). В результате в коде я создаю объект и в отладчике не выводится на нём ничего особенного (будто стиль не применён).

Что я не так делаю или что где нужно включить?

#49
13:35, 31 мар. 2014

Разобрался с Rect24. Я просто по ошибке обозвал расширение не natvis, а narvis. Проблема теперь со строками. У меня класс шаблон строки называется BaseString. Есть typedef, которые определяют Char и AChar из wchar_t и char. Ну и сами String и AString у меня определяются из BaseString используя Char и AChar. Хочу чтобы хоть что-то вывелось, пишу:

+ Показать

В результате ничего не выводится. Что не так?

#50
13:52, 31 мар. 2014

Объясните что в этом коде:

<Type Name="d::BaseString & lt ; * & gt ;">

Означают эти символы?

& lt ; * & gt ;

Вообще пробелов там не должно быть, просто иначе HTML не отобразит такой текст.

#51
15:30, 31 мар. 2014

Это последовательности для кодирования угловых скобок. Они нужны, так как угловые скобки  - это запрещённые символы в xml.

#52
17:31, 31 мар. 2014

gammaker
> Это последовательности для кодирования угловых скобок. Они нужны, так как угловые скобки - это запрещённые символы в xml.
Спасибо)

#53
13:13, 22 апр. 2014

Всем доброго дня!

Вопрос по поводу вывода информации в отладчике, связанного с отображением своего вектора, а именно с отображением списка элементов. У меня есть вектор следующей структуры:

+ Показать

Тут pData является указателем на начало данных в памяти. size отвечает за количество добавленных элементов. reserve отвечает за запас элементов. А alloc показывает сколько всего элементов выделено (то есть это максимум из size и reserve).

Сейчас я написал такой вот вывод для отладчика:

+ Показать

В данном случае у меня в качестве размера массива стоит переменная alloc, что вообще-то и является действительным размеров массива, выделенным через new. Всё это работает правильно. Но для удобства мне хотелось бы чтобы в отладке выводился список из реально используемых элементов, то есть по значению size (не хочется в отладке видеть все зарезервированные элементы). Но указав вместо alloc значение size приводит к тому, что в отладчике вообще не показывается список элементов. Как решить задачу?

#54
10:46, 29 апр. 2014

Удачненько тему нашел. Как раз занялся визуализацией.
s3dworld
Выше ведь написали, угловые скобки недопустимы. Как ты при d::Vector<*> видишь что-то в отладчике? У меня вот ничего не видно было вообще, пока угловые скобки не убрал.

#55
10:35, 2 мая 2014

Kroll
> Выше ведь написали, угловые скобки недопустимы. Как ты при d::Vector<*> видишь что-то в отладчике? У меня вот ничего не видно было вообще, пока угловые скобки не убрал.
В смысле как вижу? Ну всё что я писал выше, всё у меня работает. Проблема только в том, что я хочу чтобы он выводил из массива только нужное мне количество элементов. Такое можно устроить?

#56
10:49, 2 мая 2014

Так ты пробовал вместо < и > использовать

&lt ; и &gt ;
?

#57
22:14, 2 мая 2014

gammaker
Кому вопрос? Я использую именно &lt ; и &gt ;. У меня проблема в том, что я выделяю массив из, например 20 элементов, но мне надо чтобы в отладчике он выводил не все 20, а только, например, 4. Вот если я ему в size указываю вывести меньше чем было выделено, то он вообще ничего не выводит. А если указываю именно столько, сколько и было выделено, то все выводит. Просто я делаю с резервом вектор и мне не нужно чтобы не используемый резерв мелькал в отладке.

#58
22:49, 2 мая 2014

s3dworld
> Кому вопрос?
Был тебе. Я так понял, это просто браузер их проглотил и сбил меня с толку.

s3dworld
> У меня проблема в том, что я выделяю массив из, например 20 элементов, но мне
> надо чтобы в отладчике он выводил не все 20, а только, например, 4.
Не знаю, у меня такой проблемы не было. У меня там вообще в <Size> стояла разность указателей.

#59
16:51, 5 мая 2014

Захотел сделать визуализатор для своего enum'а, завёрнутого в структуру с методами. Написал такой код в natvis:

<Type Name="ImageFormat">
          <DisplayString>{value}</DisplayString>
          <Expand> 
              <Item Name="Valid">IsValid()</Item>
              <Item Name="Compressed">IsCompressed()</Item>
              <Item Name="Basic">IsBasic()</Item>
              <Item Name="Packed">IsPacked()</Item>
              
              <Item Name="Components">ComponentCount()</Item>
              <Item Name="Component type">GetComponentType()</Item>
              <Item Name="Value type">GetValueType()</Item>
              
        <Item Name="Is normalized">IsNormalized()</Item>
        <Item Name="Is floating point">IsFloatingPoint()</Item>
        <Item Name="Is integral">IsIntegral()</Item>
        
        <Item Name="Luminance only">IsLuminance()</Item>
        <Item Name="Alpha only">IsAlpha()</Item>
        
        <Item Name="Has depth">HasDepth()</Item>
        <Item Name="Has stencil">HasStencil()</Item>
        <Item Name="Has luminance">HasLuminance()</Item>
        <Item Name="Has alpha">HasAlpha()</Item>
        <Item Name="Has color">HasColor()</Item>
          </Expand> 
    </Type>
Но отладчик пишет такую ошибку:
Ошибка: Это выражение имеет побочные эффекты и вычисляться не будет.
    Ошибка при вычислении "IsValid()" в контексте типа "Demo1.exe!ImageFormat".

На самом деле никаких побочных эффектов нет, но определены эти функции в cpp файле. И их крайне нежелательно оттуда выносить, потому что я хочу скрыть их реализацию, которая занимает примерно 7 экранов кода. Эта реализация помимо всего прочего определяет свои типы, вспомогательные функции и таблицы, которыми я не хочу замусоривать пространства имён всех файлов, которые пользуются типом ImageFormat.
Можно ли как-нибудь заставить отладчик всё же выполнить эти функции, которые он считает имеющими побочные эффекты?

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.