В Сербии для натурализации тоже нужно отказываться от предыдущего гражданства, притом даже сейчас есть случаи, как люди без гражданства сидят больше года из-за бюрократических проволочек — то ли ещё будет, когда подойдёт трёхлетний срок у переехавших в последние годы россиян...
любой фильм, зачастую в лучшем качестве чем в itunes или ещё где либо
Надо заметить, нередко бывает и наоборот: если фильм (с документалками такое часто бывает) выходил только на стримингах, то в 4K он обычно бывает доступен только с Widevine L1, что для подавляющего большинства релизеров оказывается непреодолимым препятствием, и на торрентах оказывается лишь FullHD-версия (разница часто практически незаметна, но факт налицо).
Помню, решали похожую таску на PlaidCTF 2020, получилось что-то похожее на этот райтап (ассемблером бинарник собирать посподручнее, конечно: не нужно самому оффсеты высчитывать)
Вообще было бы совсем замечательно запретить производить телефоны, которые мне не нравятся. Это ведь очень удобно: приходишь в магазин, берёшь любой и он оказывается хорошим!
Если всё объясняется этим, то действительно увеличения --stack-size должно быть достаточно — всё лучше, чем заставлять поток дожидаться, пока GDB весь стек раскрутит.
Интересно, за счёт чего GDB разворачивает стек лучше, чем --call-graph dwarf — казалось бы, у последнего есть и стек (который дампится в perf.data как есть — возможно, нужно лимит увеличить?), и символьная информация (во всяком случае, если мы его запускаем на той же машине и не подменяли файлов с момента запуска бинаря). Возможно, дело в самом анвайндере и стоит попробовать какую-нибудь ещё реализацию, например, из hotspot.
Собственно для включения «прозрачного сравнения» требуются активные действия именно потому, что это накладывает новый инвариант: компараторы должны быть согласованы. В статье действительно что-то странное предлагается.
В то же время, когда пользовательский код закладывается на то, что условный memchr AS-safe — это хождение по грани с опорой на веру в здравый смысл и надежду на лучшее, но у имплементации стандартной библиотеки в этом плане позиция более выигрышная, ведь можно с чистой совестью закладываться на детали этой же самой имплементации.
Так или иначе, ситуация, когда отсутствие AS-safety является багом, заметно отличается от ситуации, когда это фича, прямо следующая из предоставляемого интерфейса. Наверное, никому не было бы плохо от наличия более низкоуровневого не аллоцирующего интерфейса, который хотя бы принципиально возможно реализовать на распространённых платформах с предоставлением дополнительных гарантий и через который выражен интерфейс, предоставляющий пользователю std::string.
Как показывает практика, если задаться целью, то вполне можно реализовать AS-safe symbolize и demangle трейсов (в конце концов, где же их выводить, как не в обработчиках сигналов?) — правда, приходится имплементировать это всё с нуля и простыни действительно получаются впечатляющие. Кажется, что по-хорошему как раз в ABI-библиотеке такому коду и место и было бы здорово, если бы новые фичи в стандарте позволяли выкидывать велосипеды, написанные ранее для тех же задач, что берётся решать предложение.
В предложении говорится, что async-signal-safety не гарантируется (что в целом разумно, учитывая, что не на всех платформах это словосочетание вообще имеет смысл). Тем не менее, стоит ли ожидать, что имплементации std::stacktrace под условный x86-64 GNU/Linux будут допускать использование в обработчиках сигналов?
«Невозможно» — сильное слово, однако чтобы корректно выводить красивый (symbolized, demangled, с учётом инлайнинга, etc.) стектрейс в обработчике сигнала, требуется простыня впечатляющих размеров (вот, например, реализация только содержательной части пункта про «красивый» из Abseil). А для получения стектрейса как набора адресов (возможно, даже с чем-то похожим на имена символов и смещения относительно них) достаточно и glibc (с некоторыми оговорками про AS-safety).
Он вообще ничего не показывает — он просто выводит содержимое файла на консоль, а она уже отображает его так, как считает нужным. По Вашему же скриншоту видно, что поведение разных терминалов несколько отличается, но cat здесь совершенно ни при чём
Information
Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
https://en.wikipedia.org/wiki/Marjorie_Rice
В Сербии для натурализации тоже нужно отказываться от предыдущего гражданства, притом даже сейчас есть случаи, как люди без гражданства сидят больше года из-за бюрократических проволочек — то ли ещё будет, когда подойдёт трёхлетний срок у переехавших в последние годы россиян...
Надо заметить, нередко бывает и наоборот: если фильм (с документалками такое часто бывает) выходил только на стримингах, то в 4K он обычно бывает доступен только с Widevine L1, что для подавляющего большинства релизеров оказывается непреодолимым препятствием, и на торрентах оказывается лишь FullHD-версия (разница часто практически незаметна, но факт налицо).
Помню, решали похожую таску на PlaidCTF 2020, получилось что-то похожее на этот райтап (ассемблером бинарник собирать посподручнее, конечно: не нужно самому оффсеты высчитывать)
https://web.archive.org/web/20180402025448/https://telegram.org/faq#q-will-you-have-ads-or-sell-my-data-or-steal-my-beloved-and-ensl
Вообще было бы совсем замечательно запретить производить телефоны, которые мне не нравятся. Это ведь очень удобно: приходишь в магазин, берёшь любой и он оказывается хорошим!
Так речь же скорее про раз в 100 секунд
Если всё объясняется этим, то действительно увеличения
--stack-size
должно быть достаточно — всё лучше, чем заставлять поток дожидаться, пока GDB весь стек раскрутит.Интересно, за счёт чего GDB разворачивает стек лучше, чем
--call-graph dwarf
— казалось бы, у последнего есть и стек (который дампится в perf.data как есть — возможно, нужно лимит увеличить?), и символьная информация (во всяком случае, если мы его запускаем на той же машине и не подменяли файлов с момента запуска бинаря). Возможно, дело в самом анвайндере и стоит попробовать какую-нибудь ещё реализацию, например, из hotspot.Собственно для включения «прозрачного сравнения» требуются активные действия именно потому, что это накладывает новый инвариант: компараторы должны быть согласованы. В статье действительно что-то странное предлагается.
В то же время, когда пользовательский код закладывается на то, что условный
memchr
AS-safe — это хождение по грани с опорой на веру в здравый смысл и надежду на лучшее, но у имплементации стандартной библиотеки в этом плане позиция более выигрышная, ведь можно с чистой совестью закладываться на детали этой же самой имплементации.Так или иначе, ситуация, когда отсутствие AS-safety является багом, заметно отличается от ситуации, когда это фича, прямо следующая из предоставляемого интерфейса. Наверное, никому не было бы плохо от наличия более низкоуровневого не аллоцирующего интерфейса, который хотя бы принципиально возможно реализовать на распространённых платформах с предоставлением дополнительных гарантий и через который выражен интерфейс, предоставляющий пользователю
std::string
.Как показывает практика, если задаться целью, то вполне можно реализовать AS-safe symbolize и demangle трейсов (в конце концов, где же их выводить, как не в обработчиках сигналов?) — правда, приходится имплементировать это всё с нуля и простыни действительно получаются впечатляющие. Кажется, что по-хорошему как раз в ABI-библиотеке такому коду и место и было бы здорово, если бы новые фичи в стандарте позволяли выкидывать велосипеды, написанные ранее для тех же задач, что берётся решать предложение.
В предложении говорится, что async-signal-safety не гарантируется (что в целом разумно, учитывая, что не на всех платформах это словосочетание вообще имеет смысл). Тем не менее, стоит ли ожидать, что имплементации
std::stacktrace
под условный x86-64 GNU/Linux будут допускать использование в обработчиках сигналов?«Невозможно» — сильное слово, однако чтобы корректно выводить красивый (symbolized, demangled, с учётом инлайнинга, etc.) стектрейс в обработчике сигнала, требуется простыня впечатляющих размеров (вот, например, реализация только содержательной части пункта про «красивый» из Abseil). А для получения стектрейса как набора адресов (возможно, даже с чем-то похожим на имена символов и смещения относительно них) достаточно и glibc (с некоторыми оговорками про AS-safety).
Он вообще ничего не показывает — он просто выводит содержимое файла на консоль, а она уже отображает его так, как считает нужным. По Вашему же скриншоту видно, что поведение разных терминалов несколько отличается, но cat здесь совершенно ни при чём