отладка DLL в Visual Studio NET
От: Аноним  
Дата: 06.10.05 11:17
Оценка:
Не подскажите, в чем может быть проблема.
Пытаюсь отладить в 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
Re: отладка DLL в Visual Studio NET
От: Andrbig  
Дата: 06.10.05 11:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Не подскажите, в чем может быть проблема.

А>Пытаюсь отладить в 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-шного приложения, а его нет, есть только исполняемый файл .
Re[3]: отладка DLL в Visual Studio NET
От: Andrbig  
Дата: 06.10.05 12:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, 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
Re: отладка DLL в Visual Studio NET
От: lev.matash  
Дата: 07.10.05 05:29
Оценка:
Здравствуйте, Аноним, Вы писали:

попробуй в свойствах проекта 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>указать нужный екзешник и другие настройки ниже


Ну разумеется я эти настройки устанавливаю, В том-то и дело , что не выполняются точки останеова и все.
Re[5]: отладка DLL в Visual Studio NET
От: OlegSv2 Россия  
Дата: 07.10.05 20:25
Оценка:
А>Да, попробовала я эту комбинацию. Это что же получается. Если мне надо где-то установить точку останова, то нужно в этом месте окно с сообщением вываливать. Как-то уж больно муторно получается отлаживать. Придется наверное этот проект в 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-шником.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.