crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Про ошибки в DLL
Litkevich Yuriy
  опции профиля:
сообщение 4.2.2019, 6:08
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


По поводу DLL-ок вопрос.

Положим есть DLL-ка и запущены 2 приложения использующие её.
А в DLL-ке баг, который в определённой ситуации приведёт к её падению.

Допустим одно приложение создало такую ситуацию, при этом оба приложения упадут и сама DLL-ка?

Как это работает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 4.2.2019, 8:29
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Litkevich Yuriy, насколько я понимаю, если одно приложение создало ситуацию, то упадёт только оно. А DLL падать не умеет.

всё, что в Dll, - как бы присоединяется к загрузившему её приложению, то есть становится частью этого приложения с общей для dll и приложения памятью, потоками и процессом. Поэтому два таких dll-хвоста в двух разных приложениях никак сами по себе не взаимодействуют.

Следовательно, если баг есть в DLL, то этот баг будет в любом приложении, которое загрузило себе эту DLL (будет сидеть и не проявляться, возможно. Или проявится, если косячный код вызовется)

Но если некий злой гений специально сделал какую-нибудь глобальную отслеживалку в DLL, которая при падении процесса заставляет во всех копиях dll тоже спровоцировать краш - тогда да :D

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 7.2.2019, 4:24
Сообщение #3


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


в норме у современных ОСей каждый процесс имеет свою копию DLL'ки.
естественно, это не отменяет возможности использования внутри DLL каких-то общесистемных ресурсов (расшаренных системных ресурсов, общей памяти для каких-то глобальных данных и т.д.) и в этом случае, если возникли какие-то серьёзные нарушения доступа, то может упасть всё, вплоть до системы :) но такое редко встречается в DLL'ках.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.2.2019, 7:11
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Iron Bug @ 7.2.2019, 6:24) *
но такое редко встречается в DLL'ках
ну это зависит от того, как я её накастылю 😀
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 9.2.2019, 8:22
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Litkevich Yuriy, глобальный хук с рекурсией подойдёт :D
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.11.2024, 23:49