Вопросы по теме 'setjmp'

Каковы хорошие способы использования longjmp/setjmp для обработки ошибок C?
Мне нужно использовать C для одного проекта, и я думаю об использовании longjmp/setjmp для обработки ошибок, так как я думаю, что будет намного проще обрабатывать ошибки в одном месте, чем коды возврата. Я был бы признателен, если бы есть некоторые...
10841 просмотров
schedule 04.08.2022

Как работает longjmp?
Мне нужно понять, КАК работает функция longjmp; Я знаю, что он делает, но мне нужно знать, как он это делает. Я попытался разобрать код в gdb, но не могу понять некоторые шаги. Код: 0xb7ead420 <siglongjmp+0>: push %ebp 0xb7ead421...
3197 просмотров
schedule 12.12.2023

О setjmp / longjmp
Я исследовал setjmp / longjmp и обнаружил, что setjmp сохраняет регистры, такие как указатель команд, указатель стека и т. Д. Однако я не понимаю, что нельзя изменить данные в стеке самого потока между вызовом setjmp и longjmp . В этом...
9311 просмотров
schedule 07.05.2024

Есть ли проблемы с производительностью при нелокальных переходах?
Я использую нелокальные переходы ( setjmp , longjmp ). Я хотел бы знать, может ли это быть проблемой для выступлений. Сохраняет ли setjmp весь стек или только некоторые указатели? Спасибо.
216 просмотров
schedule 14.07.2023

Как работают нелокальные переходы в C, определенные в setjmp.h?
Справочное руководство по C , Приложение B, описывает две функции setjmp и longjmp для так называемых нелокальных переходов . Помимо базового понимания того, что setjmp сохраняет информацию о состоянии, а longjmp восстанавливает state , я не...
960 просмотров
schedule 12.01.2024

несогласованное предупреждение: переменная может быть сбита с помощью longjmp или vfork
Я в основном убеждал себя, что столкнулся с какой-то ошибкой g ++ 4.8.3, но подумал, что сначала спрошу этот список, потому что у меня очень мало опыта работы с setjmp / longjmp. Я упростил свой код до следующего файла foo.cxx: #include...
4363 просмотров
schedule 16.06.2023

Setjmp/longjmp в продолжении Ruby
Я задавался этим вопросом, копаясь в коде cont.c в текущей версии Ruby. В документации setjmp говорится, что вызов longjmp для структуры jmp_buf после возврата вызывающего объекта setjmp является ошибкой. Но, кажется, Ruby делает это...
252 просмотров
schedule 12.03.2024

x86 Переход в защищенный режим из реального режима CPL (Current Privilege Level)
В x86 после того, как мы установили PE-бит CR0, мы выполняем дальний JMP, чтобы гарантировать изменение CS / EIP. Когда я смотрю на логический поток в руководстве программиста x86, соответствующий этой далекой инструкции JMP (защищенный режим), я...
705 просмотров

Lua coroutines setjmp longjmp clobbering?
В не так давно сообщении в блоге Скотт Воукс описывает техническую проблему, связанную с lua реализация сопрограмм с использованием функций C setjmp и longjmp : Основное ограничение сопрограмм Lua заключается в том, что, поскольку они...
1815 просмотров
schedule 22.09.2023

Протокол связи и локальная петля с использованием setjmp/longjmp
Я закодировал относительно простой протокол связи с использованием общей памяти и общих мьютексов. Но затем я захотел расширить поддержку для связи между двумя .dll, имеющими разное время выполнения. Совершенно очевидно, что если у вас есть...
225 просмотров
schedule 15.05.2023

Использование setjmp в функции-обертке и затирание локальной переменной
В документации по setjmp (3) на страницах руководства (в моей системе) указано, что Все доступные объекты имеют значения на момент вызова подпрограммы longjmp (), за исключением того, что значения объектов продолжительности автоматического...
268 просмотров

Какова функция alloca() с setjmp?
Этот вопрос исходит из Практического использования setjmp и longjmp в C и Как реализовать сопрограмму в цикле for в c что я спросил. jmp_buf bufferA, bufferB; void routineB(); // forward declaration void routineA() { int r = 0;...
205 просмотров
schedule 12.12.2023