Выполнение отдельных кодов операций из отладчика - PullRequest
0 голосов
/ 09 мая 2018

Я написал sys.settrace функцию:

import sys
def tracefunc(frame, event, arg):
    if event == 'call':
        if '__debug_me__' in frame.f_code.co_names:
            return tracefunc
        return None
    if frame is not None:
        print(event, frame.f_code, frame.f_lasti)
        # I am stuck here

Всякий раз, когда встречается STORE_NAME, я хочу сделать что-то вроде:

print(frame.f_code.co_names[namei], old_val, new_val)

но я не могу придумать какой-либо способ сделать это, который был бы против:

x=1;y=2;z=3

или т.п .; sys.settrace Python останавливается на каждой строке, но это все. Я мог бы решить эту проблему, выполнив отдельные коды операций и прочитав стек фрейма ... но как я могу сделать , что ?

Есть ли способ пройти через отдельные коды операций (в отличие от строк) в Python?

...