Как попасть внутрь длл без исходного кода
От: Аноним  
Дата: 14.03.12 07:33
Оценка:
Есть внешняя длл — httpmodule. исходников нет.
длл выкидывает ошибку в момент инициализации на событии init.
как поставить брейкпойнт внутри длл без наличия исходников?
Re: Как попасть внутрь длл без исходного кода
От: Camarada Россия  
Дата: 14.03.12 07:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть внешняя длл — httpmodule. исходников нет.

А>длл выкидывает ошибку в момент инициализации на событии init.
А>как поставить брейкпойнт внутри длл без наличия исходников?

А без исходников хочется ассемблерный код посмотреть?
Re[2]: Как попасть внутрь длл без исходного кода
От: Аноним  
Дата: 14.03.12 07:44
Оценка:
Здравствуйте, Camarada, Вы писали:

C>Здравствуйте, Аноним, Вы писали:


А>>Есть внешняя длл — httpmodule. исходников нет.

А>>длл выкидывает ошибку в момент инициализации на событии init.
А>>как поставить брейкпойнт внутри длл без наличия исходников?

C>А без исходников хочется ассемблерный код посмотреть?


нет. в том то и дело хочется .net.
есть класс который реализует IHttpModule и я знаю что на событии Init он выдает ошибку.
надо поставить там брейкпойнт
Re[3]: Как попасть внутрь длл без исходного кода
От: Camarada Россия  
Дата: 14.03.12 08:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Camarada, Вы писали:


C>>Здравствуйте, Аноним, Вы писали:


А>>>Есть внешняя длл — httpmodule. исходников нет.

А>>>длл выкидывает ошибку в момент инициализации на событии init.
А>>>как поставить брейкпойнт внутри длл без наличия исходников?

C>>А без исходников хочется ассемблерный код посмотреть?


А>нет. в том то и дело хочется .net.

А>есть класс который реализует IHttpModule и я знаю что на событии Init он выдает ошибку.
А>надо поставить там брейкпойнт
Хочется .net исходников нет. Вы имеете ввиду Common Intermediate Language?
В чем брейкпоинт то ставить? Брейкпоинт на то и брейкпоинт, что его в исходниках ставят
Re[4]: Как попасть внутрь длл без исходного кода
От: Аноним  
Дата: 14.03.12 08:27
Оценка: :)
Здравствуйте, Camarada, Вы писали:

C>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Camarada, Вы писали:


C>>>Здравствуйте, Аноним, Вы писали:


А>>>>Есть внешняя длл — httpmodule. исходников нет.

А>>>>длл выкидывает ошибку в момент инициализации на событии init.
А>>>>как поставить брейкпойнт внутри длл без наличия исходников?

C>>>А без исходников хочется ассемблерный код посмотреть?


А>>нет. в том то и дело хочется .net.

А>>есть класс который реализует IHttpModule и я знаю что на событии Init он выдает ошибку.
А>>надо поставить там брейкпойнт
C>Хочется .net исходников нет. Вы имеете ввиду Common Intermediate Language?
C>В чем брейкпоинт то ставить? Брейкпоинт на то и брейкпоинт, что его в исходниках ставят

да не обязательно брейкпойнт. можно просто внутрь длл когда вызывается метод init
Re[5]: Как попасть внутрь длл без исходного кода
От: Camarada Россия  
Дата: 14.03.12 08:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>да не обязательно брейкпойнт. можно просто внутрь длл когда вызывается метод init


Также как попасть в дом без окон и дверей.
То есть его можно разобрать по кирпичам и смотреть ассемблерный код, а можно просто не пытаться зайти в этот дом.
Как еще то объяснить, либо вы вопрос сформулируйте либо объясните, что в вашем понимании попасть в дом, без окон и дверей.
Re: Как попасть внутрь длл без исходного кода
От: Nuseraro Россия  
Дата: 14.03.12 08:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть внешняя длл — httpmodule. исходников нет.

А>длл выкидывает ошибку в момент инициализации на событии init.
А>как поставить брейкпойнт внутри длл без наличия исходников?

Придется сильно попариться с чем-нибудь типа рефлектора ( http://www.reflector.net/ ) Но теоретически можно. Дизэссемблировать, сгенерить pdb, попробовать приаттачиться, или вообще пересобрать, или вроде последние версии рефлектора позволяли прямо так брейкпоинт ставить(сам не делал, но слышал).
Homo Guglens
Re: Как попасть внутрь длл без исходного кода
От: Camarada Россия  
Дата: 14.03.12 08:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть внешняя длл — httpmodule. исходников нет.

А>длл выкидывает ошибку в момент инициализации на событии init.
А>как поставить брейкпойнт внутри длл без наличия исходников?
А если вернуться к изначальному вопросу, то расскажите, что за DLL,
native или .NET, если нативная, то возможно у вас ошибка в объявлении Interop
Опишите ошибку в общем, а потом уже поймем, надо вам внутрь длл или не надо.
Re[2]: Как попасть внутрь длл без исходного кода
От: Аноним  
Дата: 14.03.12 09:24
Оценка:
Здравствуйте, Camarada, Вы писали:

C>Здравствуйте, Аноним, Вы писали:


А>>Есть внешняя длл — httpmodule. исходников нет.

А>>длл выкидывает ошибку в момент инициализации на событии init.
А>>как поставить брейкпойнт внутри длл без наличия исходников?
C>А если вернуться к изначальному вопросу, то расскажите, что за DLL,
C>native или .NET, если нативная, то возможно у вас ошибка в объявлении Interop
C>Опишите ошибку в общем, а потом уже поймем, надо вам внутрь длл или не надо.

asp.net приложение у себя в веб конфиге деклирурует httpmodule (.net)
этот модуль выкидывает ошибку (комментарю — всё ок).
надо понять что кидает в нем ошибку
Re: Как попасть внутрь длл без исходного кода
От: DimaF  
Дата: 14.03.12 09:48
Оценка:
Здравствуйте, Аноним, Вы писали:

Что бы прямо по MSIL отлаживать — такого не знаю. Вроде есть какой-то плагин для рефлектора, но не пробовал никогда.

Если dll — это .net сборка, то мы делали так
1) Снимаем флажки Enable Just My Code (В 2008 студии это тут: Tools->Options->Debugging->General).
2) Ставим брекпоинт (Debug->New Breakpoint-> Break At Function) по полному имени функции(например: System.Windows.Forms.Control.SuspendLayout)

Потом уже по ассемблерному коду отлаживаемся, поглядывая одним глазом в рефлектор (или что-то подобное, что может код на C# показать).Там достаточно понятно все — смотришь сначала на код в рефлекторе, потом на ассемблерный, обычно понятно что чему соответствует. Если действительно надо, разобраться можно.
Зачастую отладчик даже может показать значения аргументов по их именам.
Re: Как попасть внутрь длл без исходного кода
От: ionoy Эстония www.ammyui.com
Дата: 14.03.12 11:29
Оценка: 1 (1)
Здравствуйте, <Аноним>, Вы писали:

А>Есть внешняя длл — httpmodule. исходников нет.

А>длл выкидывает ошибку в момент инициализации на событии init.
А>как поставить брейкпойнт внутри длл без наличия исходников?

ILSpy 2.0 умеет дебужить по декомпилированному коду.
http://wiki.sharpdevelop.net/ilspy.ashx

Платный Reflector тоже это умеет, причём прямо из Visual Studio.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[2]: Как попасть внутрь длл без исходного кода
От: Степанов Андрей  
Дата: 17.03.12 17:21
Оценка:
Здравствуйте, Nuseraro, Вы писали:

N>Здравствуйте, Аноним, Вы писали:


А>>Есть внешняя длл — httpmodule. исходников нет.

А>>длл выкидывает ошибку в момент инициализации на событии init.
А>>как поставить брейкпойнт внутри длл без наличия исходников?

N>Придется сильно попариться с чем-нибудь типа рефлектора ( http://www.reflector.net/ ) Но теоретически можно. Дизэссемблировать, сгенерить pdb, попробовать приаттачиться, или вообще пересобрать, или вроде последние версии рефлектора позволяли прямо так брейкпоинт ставить(сам не делал, но слышал).


Именно так и надо. Берешь Reflector, экспортируешь полученный после дизассемблирования проект, собираешь его в Debug, и отлаживаешь. Единственный известный мне нюанс — в некоторых случаях Reflector генерирует некомпилируемый код при экспорте Причем одна и та же версия Reflector может на одной машине сделать нормальный код, а на другой хреновый, недавно нарвались. Но в целом — так.
Re[3]: Как попасть внутрь длл без исходного кода
От: Ziggi111 Россия  
Дата: 18.03.12 17:21
Оценка:
Здравствуйте, Степанов Андрей, Вы писали:

СА>Здравствуйте, Nuseraro, Вы писали:


N>>Здравствуйте, Аноним, Вы писали:


А>>>Есть внешняя длл — httpmodule. исходников нет.

А>>>длл выкидывает ошибку в момент инициализации на событии init.
А>>>как поставить брейкпойнт внутри длл без наличия исходников?

N>>Придется сильно попариться с чем-нибудь типа рефлектора ( http://www.reflector.net/ ) Но теоретически можно. Дизэссемблировать, сгенерить pdb, попробовать приаттачиться, или вообще пересобрать, или вроде последние версии рефлектора позволяли прямо так брейкпоинт ставить(сам не делал, но слышал).


СА>Именно так и надо. Берешь Reflector, экспортируешь полученный после дизассемблирования проект, собираешь его в Debug, и отлаживаешь. Единственный известный мне нюанс — в некоторых случаях Reflector генерирует некомпилируемый код при экспорте Причем одна и та же версия Reflector может на одной машине сделать нормальный код, а на другой хреновый, недавно нарвались. Но в целом — так.


Да что вы все бредите у рефлектора есть адын для студии который позволяет дебажить dll безо всяких танцев с бубном
Re[2]: Как попасть внутрь длл без исходного кода
От: notacat  
Дата: 21.03.12 15:33
Оценка:
N>Придется сильно попариться с чем-нибудь типа рефлектора ( http://www.reflector.net/ ) Но теоретически можно. Дизэссемблировать, сгенерить pdb, попробовать приаттачиться, или вообще пересобрать, или вроде последние версии рефлектора позволяли прямо так брейкпоинт ставить(сам не делал, но слышал).
последняя платная версия рефлектора 7.5 это все делает. Только что попробовала
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.