powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перестают работать точки останова (breakpoints)
12 сообщений из 12, страница 1 из 1
Перестают работать точки останова (breakpoints)
    #38321967
kir86975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. (работаю в Microsoft Visual Studio 2010)

У меня есть проект DLL-ка, которая является плагином для другой программы. Закидываю эту DLL-ку в папку с плагинами основной программы, запускаю эту программу, делаю Attach из студии и отлаживаю ее.

Проблема, собственно, вот в чем. Когда в свойствах проекта выставлено следующее:
Configuration Properties -> Project Defaults -> Common Language Runtime Support -> No Common Language Runtime Support,
C/C++ -> Code Generation -> Enable C++ Exceptions -> /EHsc,
C/C++ -> Code Generation -> Runtime Library -> /MTd
Точки останова работают отлично

если следующее:
Configuration Properties -> Project Defaults -> Common Language Runtime Support -> Common Language Runtime Support,
C/C++ -> Code Generation -> Enable C++ Exceptions -> /EHa,
C/C++ -> Code Generation -> Runtime Library -> /MDd,
то точки останова работать перестают.

Сколько с этим ни бился, сколько ни пытался гуглить, ничего, что бы помогло, найти не удалось. Помогите, пожалуйста, оживить точки. Спасибо заранее.
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322089
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kir86975,

C/C++ -> Code Generation -> Runtime Library -> /MTd
Точки останова работают отлично

Только эта опция влияет на отладку. Остальные из приведённых -- не влияют.
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322092
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kir86975,

Это
Configuration Properties -> Project Defaults -> Common Language Runtime Support -> Common Language Runtime Support,

тебе использовать НЕ НУЖНО.
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322101
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kir86975,


Помогите, пожалуйста, оживить точки. Спасибо заранее.

Ну и собственно -- главное -- надо включить генерацию отладочной информации при компиляции и построение .PDB при сборке.
При отладке .PDB должно быть той же версии и лежать рядом с .DLL

Также важно, чтобы И ПРИЛОЖЕНИЕ также было собрано в Debug-режиме и с отладочной информацией (но это уже не обязательно).
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322104
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kir86975,

Пока всё были не ответы на твои вопросы, так всё же объясни, что значит

"Точки останова работают отлично/точки останова работать перестают"
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322112
kir86975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, Перестают, это значит что отображаются пустые окружности на полях с красной границей, а не красные круги. ) Ну и на них дебагер не останавливается.
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322125
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kir86975MasterZiv, Перестают, это значит что отображаются пустые окружности на полях с красной границей, а не красные круги. ) Ну и на них компилятор не останавливается.

Это значит, ты попросил дебагер поставить в данной строке кода останов, но после запуска программы дебагер не нашёл код, который соответствует этой строке кода и не смог поставить останов.

Т.е. по-видимому либо у тебя нет debug info вообще, либо она устаревшая.

В консольке IDE, когда приложение грузится, пишутся все загружаемые модули (.dll .exe) и для них ищется debug info, и пишется, если оно не найдено. Посмотри внимательно, должно находится debug info (обычно PDB) хотя бы для твоего отлаживаемого модуля.
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322130
kir86975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Похоже, что ошибку я нашел. Под дебагом в окне модулей основное приложение просто не грузит мою DLL. А ошибка в том, что ему нужно обязательно MTd. Вот засада.
Просто хотел использовать MemoryStream, а для него нужно обязательно включить Common Language Runtime Support. И тут эта опция остальные за собой потянула.

Спасибо большое за ответ. Буду искать аналог
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322378
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kir86975,

Common Language Runtime Support НЕ НУЖЕН для программирования на С++.
Вообще.

Что это за MemoryStream ?
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322379
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, это std::stingstream.
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322384
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kir86975Под дебагом в окне модулей основное приложение просто не грузит мою DLL. А ошибка в том, что ему нужно обязательно MTd. Вот засада.
Просто хотел использовать MemoryStream, а для него нужно обязательно включить Common Language Runtime Support.

Как одно связано с другим ?

/MTd Defines _DEBUG and _MT. Defining _MT causes multithread-specific versions of the run-time routines to be selected from the standard .h files. This option also causes the compiler to place the library name LIBCMTD.lib into the .obj file so that the linker will use LIBCMTD.lib to resolve external symbols. Either /MTd or /MDd (or their non-debug equivalents /MT or MD) is required to create multithreaded programs.
Это -- использование CRT в виде .DLL в multithreaded debug варианте.

/CLR используется или не используется отдельно и совсем независимо от ключа /Mt(d)

Я ещё раз хочу подчеркнуть, что и приложение, и твой плагин должны использовать одну и ту же сборку (Debug/Release) и один и тот же вариант библиотеки MSVCRT.
...
Рейтинг: 0 / 0
Перестают работать точки останова (breakpoints)
    #38322583
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, мож, человеку, банально, Clean надо сделать, а потом пересобрать? хз, ведь, чего он там в коде своём понаделал?
довольно часто помогает
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перестают работать точки останова (breakpoints)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]