Pull to refresh
1
0
Игнат Лоскутов @iloskutov

User

Send message

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

любой фильм, зачастую в лучшем качестве чем в itunes или ещё где либо

Надо заметить, нередко бывает и наоборот: если фильм (с документалками такое часто бывает) выходил только на стримингах, то в 4K он обычно бывает доступен только с Widevine L1, что для подавляющего большинства релизеров оказывается непреодолимым препятствием, и на торрентах оказывается лишь FullHD-версия (разница часто практически незаметна, но факт налицо).

Помню, решали похожую таску на PlaidCTF 2020, получилось что-то похожее на этот райтап (ассемблером бинарник собирать посподручнее, конечно: не нужно самому оффсеты высчитывать)

Вообще было бы совсем замечательно запретить производить телефоны, которые мне не нравятся. Это ведь очень удобно: приходишь в магазин, берёшь любой и он оказывается хорошим!

100 раз в секунду

Так речь же скорее про раз в 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 не показывает их

Он вообще ничего не показывает — он просто выводит содержимое файла на консоль, а она уже отображает его так, как считает нужным. По Вашему же скриншоту видно, что поведение разных терминалов несколько отличается, но cat здесь совершенно ни при чём

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity