Size: a a a

2020 August 25

A

Aleksandr in supapro.cxx
Ilia Zviagin
Я думаю, у тебя всё ок, просто ты что-то не так в диагностике получаешь, и запутался.
Например что?
источник

AT

Anatoly Tomilov in supapro.cxx
Sergey Skvortsov
В линуксах pthread_mutex_lock против какого-нибудь pthread_rwlock_wrlock
ладно. Дороже в каком смысле? Медленнее получится в каких-то ситуациях?
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Ток gcc умеет пока
источник

IZ

Ilia Zviagin in supapro.cxx
Странный дамп какой-то...
источник

SS

Sergey Skvortsov in supapro.cxx
Anatoly Tomilov
ладно. Дороже в каком смысле? Медленнее получится в каких-то ситуациях?
Ну да
источник

A

Aleksandr in supapro.cxx
ну, это дамп /all
источник

SS

Sergey Skvortsov in supapro.cxx
Пруфануть цифрами сразу не могу, но shared_mutex заметно сложнее внутри устроен и часто с использованием обычного mutex пишется
источник

ИН

Иван Незнающий... in supapro.cxx
Vladyslav Ryuzaki
Ток gcc умеет пока
а так и он не умеет, да?
https://godbolt.org/z/vzdvc5
источник

IZ

Ilia Zviagin in supapro.cxx
Vladyslav Ryuzaki
Ну, зная смещение функции внутри dll и адрес подключения dll при аттаче мы можем получить указатель на функцию) как от функции резолва имени
Так, и откуда ты это смещение узнать собираешься?
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Ilia Zviagin
Так, и откуда ты это смещение узнать собираешься?
Дебаг символы?
источник

ПК

Побитый Кирпич... in supapro.cxx
Anatoly Tomilov
ну то есть на всех линуксах он реализован через те же системные штуки, что и простой, но быть может есть какие-то системы, где стоимость (что бы это ни значило) shared_mutex выше, чем mutex, так можно сказать?
там атомарные счётчики внутри + всякие алгоритмы на них
источник

ПК

Побитый Кирпич... in supapro.cxx
Это и даёт оверхед
источник

IZ

Ilia Zviagin in supapro.cxx
Vladyslav Ryuzaki
Дебаг символы?
А если их нет?
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Ilia Zviagin
А если их нет?
Ну, плохо тогда, но все равно есть способ просто неделю сидеть и втыкать во флоу асма, может зацепиться за что-то (доступ к статическим переменным или оффсеты у структур) и тыкать вслепую
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
Господа, у меня возник вопрос относительно линковки библиотек в винде. При создании динамической библиотеки я линкую в нее статическую, и в итоге вижу что из динамической экспортируются не только те функции, что мною запланированы, но и те, что экспортирует статическая библиотека.
Например, я при создании библиотеки dynamic.dll с экспортируемой функцией foo() я линкую в нее static.lib из которой экспортируется bar(). В итоге, из dynamic.dll экспортируются и foo(), и bar().
По какой-то причине это происходит не со всеми библиотеками. Решение наверняка элементарное, но не могу к нему прийти
Среда и компилятор MSVC 2017
Короче, я прихожу к выводу, что ты при
...я линкую в нее статическую, и в итоге **вижу** что из динамической экспортируются не только те функции, что мною запланированы, но и те, что экспортирует статическая библиотека.

видишь это неверно. То есть ошибаешься.
Как ты это диагносцируешь?

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

A

Aleksandr in supapro.cxx
Диагностирую я это просто. dumpbin /exports a.dll показывает мне функции из b.lib
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Aleksandr
Диагностирую я это просто. dumpbin /exports a.dll показывает мне функции из b.lib
А получить указатель в рантайме можешь по имени этих функций?
источник

A

Aleksandr in supapro.cxx
могу
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Тебе же это нужно избежать
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Хм...
источник