Не подскажите, в чем может быть проблема.
Пытаюсь отладить в Visual Studio Net dll.
Не выполняются точки останова в исходном коде dll. Во время выполнения запускающего мою dll приложения, точки останова помечаются вопросительными знаками с комментарием "The breakpoint will not currently be hit. No executable code is currently loaded at this location." Сразу скажу, что моя dll находится в одной директории с запускающим ее приложением, Версия о том, что запускаается не та версия dll не нашла поддтверждения. Т.к. если я меняю свою dll, т.е. например вывожу некоторое окно с сообщением, то после перекомпилирования окно сообщения выводится, а точка останова, поставленная в строке вызова окна с сообщенением не выполняется. Естесственно точка остановится ставится в том куске кода, который должен вызываться обязательно. Естественно, версия проекта Debug. Странно, но моя dll при выполнении запускающего ее приложения не появляется в окне Modules.
Тот же проект под Visual Studio 6.0 прекрасно отлаживается. Exe-шные проекты под Visual Studio Net тоже прекрасно отлаживаются.
Помогите, please, кто чем может, а то уже больше мучиться нет сил.
06.10.05 23:21: Перенесено модератором из '.NET' — der Igel
Здравствуйте, Аноним, Вы писали:
А>Не подскажите, в чем может быть проблема. А>Пытаюсь отладить в Visual Studio Net dll. А>Не выполняются точки останова в исходном коде dll. Во время выполнения запускающего мою dll приложения, точки останова помечаются вопросительными знаками с комментарием "The breakpoint will not currently be hit. No executable code is currently loaded at this location." Сразу скажу, что моя dll находится в одной директории с запускающим ее приложением, Версия о том, что запускаается не та версия dll не нашла поддтверждения. Т.к. если я меняю свою dll, т.е. например вывожу некоторое окно с сообщением, то после перекомпилирования окно сообщения выводится, а точка останова, поставленная в строке вызова окна с сообщенением не выполняется. Естесственно точка остановится ставится в том куске кода, который должен вызываться обязательно. Естественно, версия проекта Debug. Странно, но моя dll при выполнении запускающего ее приложения не появляется в окне Modules. А>Тот же проект под Visual Studio 6.0 прекрасно отлаживается. Exe-шные проекты под Visual Studio Net тоже прекрасно отлаживаются. А>Помогите, please, кто чем может, а то уже больше мучиться нет сил.
все будет хорошо если
1. dll и exe находятся в одном солюшене
2. dll и exe являются managed
3. в exe есть reference на dll как на проект
4. все компилится в debug
5. используется C# или vb.net
Безусловно есть и другие рабочие комбинации, но эта — самая простая, от нее можно начать.
Re[2]: отладка DLL в Visual Studio NET
От:
Аноним
Дата:
06.10.05 12:25
Оценка:
Здравствуйте, Andrbig, Вы писали:
A>все будет хорошо если A>1. dll и exe находятся в одном солюшене A>2. dll и exe являются managed A>3. в exe есть reference на dll как на проект A>4. все компилится в debug A>5. используется C# или vb.net
A>Безусловно есть и другие рабочие комбинации, но эта — самая простая, от нее можно начать
Все это хорошо, если бы был проект exe-шного приложения, а его нет, есть только исполняемый файл .
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Andrbig, Вы писали:
A>>все будет хорошо если A>>1. dll и exe находятся в одном солюшене A>>2. dll и exe являются managed A>>3. в exe есть reference на dll как на проект A>>4. все компилится в debug A>>5. используется C# или vb.net
A>>Безусловно есть и другие рабочие комбинации, но эта — самая простая, от нее можно начать
А>Все это хорошо, если бы был проект exe-шного приложения, а его нет, есть только исполняемый файл .
Это немного сложнее.
1. запускаешь exe (dll и pdb к ней должны лежать тут же, рядом)
2. в студии меню Debug | Processes, выбираешь процесс exe, делаешь attach (не забыв включить Common Language Runtime), потом пуск
3. идешь в программе до места, где выдается сообщение
4. в студии жмешь Ctrl+Alt+Break
попробуй в свойствах проекта dll\debugging\Action\Command
указать нужный екзешник и другие настройки ниже
Re[4]: отладка DLL в Visual Studio NET
От:
Аноним
Дата:
07.10.05 06:43
Оценка:
Здравствуйте, Andrbig, Вы писали:
A>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Andrbig, Вы писали:
A>Это немного сложнее.
A>1. запускаешь exe (dll и pdb к ней должны лежать тут же, рядом) A>2. в студии меню Debug | Processes, выбираешь процесс exe, делаешь attach (не забыв включить Common Language Runtime), потом пуск A>3. идешь в программе до места, где выдается сообщение A>4. в студии жмешь Ctrl+Alt+Break
Да, попробовала я эту комбинацию. Это что же получается. Если мне надо где-то установить точку останова, то нужно в этом месте окно с сообщением вываливать. Как-то уж больно муторно получается отлаживать. Придется наверное этот проект в Visual Studio 6.0 отлаживать. А я то надеялась, что удасться от прошлой версии студии отказаться совсем. Ну почему же в новой версии все так с отладкой dll усложнилось!!. Не понимаю я этого.
Re[2]: отладка DLL в Visual Studio NET
От:
Аноним
Дата:
07.10.05 06:45
Оценка:
Здравствуйте, lev.matash, Вы писали:
LM>Здравствуйте, Аноним, Вы писали:
LM>попробуй в свойствах проекта dll\debugging\Action\Command LM>указать нужный екзешник и другие настройки ниже
Ну разумеется я эти настройки устанавливаю, В том-то и дело , что не выполняются точки останеова и все.
А>Да, попробовала я эту комбинацию. Это что же получается. Если мне надо где-то установить точку останова, то нужно в этом месте окно с сообщением вываливать. Как-то уж больно муторно получается отлаживать. Придется наверное этот проект в Visual Studio 6.0 отлаживать. А я то надеялась, что удасться от прошлой версии студии отказаться совсем. Ну почему же в новой версии все так с отладкой dll усложнилось!!. Не понимаю я этого.
Пока могу сказать только, что в NET 7.1 ( не знаю как в 7.0 ) все работает.
У меня Exe-шник не мой, соответсвенно никакой отладочной информации. Несколько dll-ек
мои, причем некоторые не загружаются сразу, а позднее из моей одной dll-ки через
LoadLibrary и я могу установить в любой из них точку останова.
Да, они помещены беленьким знаком вопроса, до тех пор пока не загружены, как загружаются, то вопросик убирается и останов срабатывает правильно.
Более того Output в Linkere у меня не туда где генерируется pdb.
Так что pdb не обязан быть там же.
Поэтому причина определенно в каких-то настройках. Но к сожалению сложно сказать
в чем конкретно она может быть. Я получил солюшен практически из VC6 воркспэйса
( где-то 6 связанных проектов, все связанные dll-ки ).
Даже не знаю, может ты копируешь dll-ку ?
У меня Output в Linkere идет именно туда откуда она будет грузится exe-шником.