When I changed frame->f_lasti change de code to back, it's work but the line in front code occurs dump, the runtime over.
I jump to 8 line and after I jump to line 10, it occurs dump.

On python trace pdb the jump works good by the frame-f_lineno.


Leandro Müller

De: Victor Stinner <vstinner@python.org>
Enviado: segunda-feira, 23 de março de 2020 13:01
Para: Leandro Müller <leandrogmuller@hotmail.com>
Cc: python-dev@python.org <python-dev@python.org>
Assunto: Re: [Python-Dev] Jump on C by PyEval_SetTrace Python 3.7.7

It seems like you should be to modify frame->f_lasti in a trace function

FYI in a frame object, the line number is computed using
frame->f_lasti and f->f_code->co_lnotab: PyFrame_GetLineNumber().

See: https://github.com/python/cpython/blob/master/Objects/lnotab_notes.txt

Good luck ;-)


Le lun. 23 mars 2020 à 00:50, Leandro Müller
<leandrogmuller@hotmail.com> a écrit :
> Hi everyone.
> I'm trying to make a simple jump on C funcion trace by frame->f_lineno.
> Example is simple, but not working.
> if (frame->f_lineno == 12){
> frame->f_lineno = 8;
> }
> attached files C and python to run test.
> the line 12 I need to jump to line 8.
> Att.
> Leandro Müller
> _______________________________________________
> Python-Dev mailing list -- python-dev@python.org
> To unsubscribe send an email to python-dev-leave@python.org
> https://mail.python.org/mailman3/lists/python-dev.python.org/
> Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/7RZX4MUF6GLPU4DVXLRTQ534TDRXRL36/
> Code of Conduct: http://python.org/psf/codeofconduct/

Night gathers, and now my watch begins. It shall not end until my death.