Дебильные вопросы в анкетах на позицию

olis
Reactions: 188
Сообщения: 1673
Зарегистрирован: Вт июн 14, 2022 9:13 pm

Re: Дебильные вопросы в анкетах на позицию

Сообщение olis »

Mad Hatter писал(а): Сб фев 15, 2025 5:41 am
Bobeg писал(а): Сб фев 15, 2025 3:31 am

Можно узнать с помощью поинтер арифметики, кого пытаеца деструктать деструктор - что-то на стеке или че-то на хипе.
Но так мало кто делает патаму што зависит от процессора, от модели памяти и от осы.
Даже не начинай. Там такой зоопарк с форматом стека при разных вызовах, что черт ногу сломит.
Соглашение о вызовах то как раз стандартное , для X86/X64 по крайней мере. Но его необязательно придерживаться и не все это делают. Но вообще для раскрутки стека используется DWARF информация, для С++ из eh_frame.
Если же нет DWARF и не поддерживается соглашение о вызовах, то раскрутка стека невозможна. Но это не про С++.
У меня был проект где как раз требовалась раскрутка стека, но не было ни того, ни другого.
Bobeg
Reactions: 2662
Сообщения: 17644
Зарегистрирован: Ср июн 15, 2022 4:01 am
:: viewtopic.php?p=857181#p857181

Re: Дебильные вопросы в анкетах на позицию

Сообщение Bobeg »

olis писал(а): Сб фев 15, 2025 6:17 am
Bobeg писал(а): Сб фев 15, 2025 4:19 am

При покидании фрейма вызываюца деструкторы всего того что было аллоцировано в/на том фрейме. Пункт про необязательно мне не ясен.
Они именно что обязательно инвокируются.
Эксепшен их не обходит.
Ну да. Только при возврате из ф-ции деструкторы стековых объектов тоже вызовутся. И как различить эту ситуацию с эксепшеном?
Ты с чем и о чем спориш.
Фукнция при возврате очищает свой фрейм.
При анвайндинге тоже.
При этом вызываются деструкторы.

Как понимать твою фразу:

"На стеке ведь тоже необязательно удаляются во время раскрутки стека."
Bobeg
Reactions: 2662
Сообщения: 17644
Зарегистрирован: Ср июн 15, 2022 4:01 am
:: viewtopic.php?p=857181#p857181

Re: Дебильные вопросы в анкетах на позицию

Сообщение Bobeg »

x64 это канешно гуд.
Но надо штоб было портабле на арм.
Bobeg
Reactions: 2662
Сообщения: 17644
Зарегистрирован: Ср июн 15, 2022 4:01 am
:: viewtopic.php?p=857181#p857181

Re: Дебильные вопросы в анкетах на позицию

Сообщение Bobeg »

Пооооорт
Портабле на аааарм
(петь на мотив борн ту би элайв)

olis
Reactions: 188
Сообщения: 1673
Зарегистрирован: Вт июн 14, 2022 9:13 pm

Re: Дебильные вопросы в анкетах на позицию

Сообщение olis »

Bobeg писал(а): Сб фев 15, 2025 7:21 am
olis писал(а): Сб фев 15, 2025 6:17 am
Ну да. Только при возврате из ф-ции деструкторы стековых объектов тоже вызовутся. И как различить эту ситуацию с эксепшеном?
Ты с чем и о чем спориш.
Фукнция при возврате очищает свой фрейм.
При анвайндинге тоже.
При этом вызываются деструкторы.

Как понимать твою фразу:

"На стеке ведь тоже необязательно удаляются во время раскрутки стека."
Ну мы ж вроде обсуждаем - как узнать вызывается деструктор из эксепшн или при удалении объекта из стека. Как различить эти 2 ситуации?
Аватара пользователя
assassello
Reactions: 1680
Сообщения: 6516
Зарегистрирован: Пн июн 13, 2022 6:46 pm
Откуда: San Jose, CA
Интересы: против Путина и, следовательно, против Трампа

Re: Дебильные вопросы в анкетах на позицию

Сообщение assassello »

Mad Hatter писал(а): Сб фев 15, 2025 5:40 am
assassello писал(а): Пт фев 14, 2025 11:56 pm
Осталось разобраться чем std::uncaught_exception отличается от std::uncaught_exceptions.
Удачи. :)
Ты не умничай, а пальцем покажи (с)
А что непонятно? std::uncaught_exception (без s) возвращает bool и совершенно справедливо раскритикована и удалена из c++20.
std::uncaught_exceptions возвращает int и вполне себе используется.
Слава Украине, слава нации! и пиздец - Российской Федерации.
olis
Reactions: 188
Сообщения: 1673
Зарегистрирован: Вт июн 14, 2022 9:13 pm

Re: Дебильные вопросы в анкетах на позицию

Сообщение olis »

Bobeg писал(а): Сб фев 15, 2025 7:27 am x64 это канешно гуд.
Но надо штоб было портабле на арм.
Да они там все DWARF используют. И при вызове ф-ций сохраняют в стеке адрес возврата и предыдущее значение base/frame pointer.
Bobeg
Reactions: 2662
Сообщения: 17644
Зарегистрирован: Ср июн 15, 2022 4:01 am
:: viewtopic.php?p=857181#p857181

Re: Дебильные вопросы в анкетах на позицию

Сообщение Bobeg »

olis писал(а): Сб фев 15, 2025 7:53 am
Bobeg писал(а): Сб фев 15, 2025 7:21 am

Ты с чем и о чем спориш.
Фукнция при возврате очищает свой фрейм.
При анвайндинге тоже.
При этом вызываются деструкторы.

Как понимать твою фразу:

"На стеке ведь тоже необязательно удаляются во время раскрутки стека."
Ну мы ж вроде обсуждаем - как узнать вызывается деструктор из эксепшн или при удалении объекта из стека. Как различить эти 2 ситуации?
Что означает "деструктор вызывается из иксепшен"?

И при ретурне и при иксепшен кидании функция все равно очищает стак фрейм.

Но при анвайндинге рантайм ищет хендлер.
А при ретурне ексекьюшен возвращаеца к точке вызова.

В обеих ситуациях все что было на стеке будет деструкнуто.
Bobeg
Reactions: 2662
Сообщения: 17644
Зарегистрирован: Ср июн 15, 2022 4:01 am
:: viewtopic.php?p=857181#p857181

Re: Дебильные вопросы в анкетах на позицию

Сообщение Bobeg »

Ну и узнать есть ли лайв эксепшен можно.
Это используется всякими бустами чтобы
имплементать анвайнд стак трейс.
Правда в рилиз билдах он очень странно работает.
Лол гыгы.
olis
Reactions: 188
Сообщения: 1673
Зарегистрирован: Вт июн 14, 2022 9:13 pm

Re: Дебильные вопросы в анкетах на позицию

Сообщение olis »

Bobeg писал(а): Сб фев 15, 2025 8:04 am
olis писал(а): Сб фев 15, 2025 7:53 am
Ну мы ж вроде обсуждаем - как узнать вызывается деструктор из эксепшн или при удалении объекта из стека. Как различить эти 2 ситуации?
Что означает "деструктор вызывается из иксепшен"?

И при ретурне и при иксепшен кидании функция все равно очищает стак фрейм.

Но при анвайндинге рантайм ищет хендлер.
А при ретурне ексекьюшен возвращаеца к точке вызова.

В обеих ситуациях все что было на стеке будет деструкнуто.
Эээ...
Bobeg писал(а): Пт фев 14, 2025 4:04 pm
Mad Hatter писал(а): Пт фев 14, 2025 12:52 pm
Напомните, как деструкторе знает, что это unwind, а не принудительное удаление обьекта?
Наверно можьно посмотреть на SP и догадаца.
Но так никто ниделаит.
Bobeg
Reactions: 2662
Сообщения: 17644
Зарегистрирован: Ср июн 15, 2022 4:01 am
:: viewtopic.php?p=857181#p857181

Re: Дебильные вопросы в анкетах на позицию

Сообщение Bobeg »

olis писал(а): Сб фев 15, 2025 7:57 am
Bobeg писал(а): Сб фев 15, 2025 7:27 am x64 это канешно гуд.
Но надо штоб было портабле на арм.
Да они там все DWARF используют. И при вызове ф-ций сохраняют в стеке адрес возврата и предыдущее значение base/frame pointer.
Ты дебаггер стандарт и коллинг конвеншены памоему немного миксишь.
Bobeg
Reactions: 2662
Сообщения: 17644
Зарегистрирован: Ср июн 15, 2022 4:01 am
:: viewtopic.php?p=857181#p857181

Re: Дебильные вопросы в анкетах на позицию

Сообщение Bobeg »

olis писал(а): Сб фев 15, 2025 8:08 am
Bobeg писал(а): Сб фев 15, 2025 8:04 am

Что означает "деструктор вызывается из иксепшен"?

И при ретурне и при иксепшен кидании функция все равно очищает стак фрейм.

Но при анвайндинге рантайм ищет хендлер.
А при ретурне ексекьюшен возвращаеца к точке вызова.

В обеих ситуациях все что было на стеке будет деструкнуто.
Эээ...
Bobeg писал(а): Пт фев 14, 2025 4:04 pm

Наверно можьно посмотреть на SP и догадаца.
Но так никто ниделаит.
Што ты разэкался.
olis
Reactions: 188
Сообщения: 1673
Зарегистрирован: Вт июн 14, 2022 9:13 pm

Re: Дебильные вопросы в анкетах на позицию

Сообщение olis »

Bobeg писал(а): Сб фев 15, 2025 8:10 am
olis писал(а): Сб фев 15, 2025 7:57 am
Да они там все DWARF используют. И при вызове ф-ций сохраняют в стеке адрес возврата и предыдущее значение base/frame pointer.
Ты дебаггер стандарт и коллинг конвеншены памоему немного миксишь.
Нет. Для раскрутки стека и дебаггер, и С++ exception handling используют DWARF data. Из eh_frame. Дебаггер может из debug_frame использовать, если eh_frame нет. Или смотреть что в стеке.
Но exception handling/stack unwinding в С++ это всегда eh_frame. Он просто компилятором генерится для C++.
Есть еще другие программы, кому stack unwinding тоже нужен. Те что занимаются live patching, например.
Есть библиотеки, libunwind например. Но там тоже только эти 2 метода.
Аватара пользователя
Mad Hatter
⭐ Top 5 most interesting users
Reactions: 2155
Сообщения: 10996
Зарегистрирован: Пн июн 13, 2022 7:22 am
Откуда: Торонто

Re: Дебильные вопросы в анкетах на позицию

Сообщение Mad Hatter »

olis писал(а): Сб фев 15, 2025 6:30 am
Mad Hatter писал(а): Сб фев 15, 2025 5:41 am
Даже не начинай. Там такой зоопарк с форматом стека при разных вызовах, что черт ногу сломит.
Соглашение о вызовах то как раз стандартное , для X86/X64 по крайней мере. Но его необязательно придерживаться и не все это делают. Но вообще для раскрутки стека используется DWARF информация, для С++ из eh_frame.
Если же нет DWARF и не поддерживается соглашение о вызовах, то раскрутка стека невозможна. Но это не про С++.
У меня был проект где как раз требовалась раскрутка стека, но не было ни того, ни другого.
Ну вот ты сам и сказал, что бывают ситуации когда нет нужного фреймворка. Понято что внутри такого все чётко определено, но я об общей ситуации. Кстати, в модели защиты x86 передача параметров между кольцами защиты при вызове метода из другого кольца определён на уровне железа :) но это другое.
Аватара пользователя
Mad Hatter
⭐ Top 5 most interesting users
Reactions: 2155
Сообщения: 10996
Зарегистрирован: Пн июн 13, 2022 7:22 am
Откуда: Торонто

Re: Дебильные вопросы в анкетах на позицию

Сообщение Mad Hatter »

assassello писал(а): Сб фев 15, 2025 7:57 am
Mad Hatter писал(а): Сб фев 15, 2025 5:40 am

Ты не умничай, а пальцем покажи (с)
А что непонятно? std::uncaught_exception (без s) возвращает bool и совершенно справедливо раскритикована и удалена из c++20.
std::uncaught_exceptions возвращает int и вполне себе используется.
И это принципиально меняет ситуацию?
voyager3
Reactions: 439
Сообщения: 2099
Зарегистрирован: Вс июл 31, 2022 9:23 am
Откуда: Оттуда

Re: Дебильные вопросы в анкетах на позицию

Сообщение voyager3 »

Запретить эти буржуазные экскпшены, и всё тут!
Аватара пользователя
assassello
Reactions: 1680
Сообщения: 6516
Зарегистрирован: Пн июн 13, 2022 6:46 pm
Откуда: San Jose, CA
Интересы: против Путина и, следовательно, против Трампа

Re: Дебильные вопросы в анкетах на позицию

Сообщение assassello »

Mad Hatter писал(а): Сб фев 15, 2025 8:42 am
assassello писал(а): Сб фев 15, 2025 7:57 am
А что непонятно? std::uncaught_exception (без s) возвращает bool и совершенно справедливо раскритикована и удалена из c++20.
std::uncaught_exceptions возвращает int и вполне себе используется.
И это принципиально меняет ситуацию?
Хм... никак. Потому что и нет никакой "ситуации". :unknown:
С++ представляет надежное средство, которое (в том числе помогает) кидать эксепшены из деструктора.

Ты о чем вообще?
Слава Украине, слава нации! и пиздец - Российской Федерации.
Аватара пользователя
assassello
Reactions: 1680
Сообщения: 6516
Зарегистрирован: Пн июн 13, 2022 6:46 pm
Откуда: San Jose, CA
Интересы: против Путина и, следовательно, против Трампа

Re: Дебильные вопросы в анкетах на позицию

Сообщение assassello »

voyager3 писал(а): Сб фев 15, 2025 11:25 am Запретить эти буржуазные экскпшены, и всё тут!
Можно. Но с какой-то частью Стандартной библиотеки придется проститься, нет?

Честно говоря, сам никогда не пробовал.
Был проект, где жестким условием было "своих исключений не бросаем, чужие - не выпускаем", но давно.
Слава Украине, слава нации! и пиздец - Российской Федерации.
olis
Reactions: 188
Сообщения: 1673
Зарегистрирован: Вт июн 14, 2022 9:13 pm

Re: Дебильные вопросы в анкетах на позицию

Сообщение olis »

voyager3 писал(а): Сб фев 15, 2025 11:25 am Запретить эти буржуазные экскпшены, и всё тут!
На С++, на котором ядро Симбиоз был написан, так и сделали)
alex_127
Reactions: 1564
Сообщения: 7171
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Дебильные вопросы в анкетах на позицию

Сообщение alex_127 »

olis писал(а): Сб фев 15, 2025 12:00 pm
voyager3 писал(а): Сб фев 15, 2025 11:25 am Запретить эти буржуазные экскпшены, и всё тут!
На С++, на котором ядро Симбиоз был написан, так и сделали)
А это что такое?
купить два новых инспекционных судна, два беспилотника дальнего радиуса действия и две дополнительные команды собачьих упряжек. (Минобороны Дании)
Ответить