Переход с помощью GDB на вызовы swapcontext () с помощью 'step' или 'next' не работает, потому что не только изменяется указатель стека, но и вызов возвращается к другой строке кода (что является желаемым эффектом swapcontext ()) , Поскольку GDB ставит точку останова в следующей строке кода, которая не будет выполняться, пока другой swapcontext () не вернется в это место, выполнение не прервется.
Вам нужно предусмотреть строку, к которой вернется swapcontext (), и установить там точку останова. Для нового (неиспользованного) контекста это будет строка, которую вы указали в качестве функции входа. Для используемых контекстов это будет, вероятно, одна из строк после swapcontext () там ...