"what are the states of the automatic variables and register variables in the main function?" When main is returned to by the longjmp, do these variables have values corresponding to when the setjmp was previously called, or are their values left alone so that their values left alone so that their values are whatever they were when do_line was called? Unfortunately, the answer is "it depends."
A call to setjmp() shall save the calling environment in its env argument for later use
还有jmp_buf 并没有多大，放不了所有的临时变量的，看过定义应该是12个int 型用来保存这个calling environment 。