В C Python доступ к стеку оценки байт-кодаPython

Программы на Python
Ответить
Anonymous
 В C Python доступ к стеку оценки байт-кода

Сообщение Anonymous »

Как мне просмотреть произвольные записи стека вычислений при наличии указателя кадра C Python? (Некоторые конкретные записи стека можно найти с помощью locals(), я говорю о других записях стека.)

Я задал более широкий вопрос, например этот некоторое время назад:

получение строки аргумента exec C Python или доступ к стеку оценки

но здесь я хочу сосредоточьтесь на возможности читать записи стека CPython во время выполнения.

Я выберу решение, которое работает на CPython 2.7 или любом Python более поздней версии, чем Python 3.3. Однако, если у вас есть что-то, что работает помимо этого, поделитесь этим, и, если нет лучшего решения, я приму это.

Я бы предпочел не изменять C Код Python. В Ruby я фактически сделал это, чтобы получить то, что хочу. По опыту могу сказать, что, вероятно, мы хотим работать не так. Но опять же, если лучшего решения не будет, я приму его. (Насколько я понимаю, что касается очков SO, я в любом случае теряю их в награде. Поэтому я рад пойти посмотреть, как они перейдут к человеку, который проявил самый добрый дух и готовность посмотреть на это, предполагая, что это работает.) < /p>

обновление: См. комментарий пользователя 2357112 tldr; По сути, это сделать практически невозможно. (Тем не менее, если вы думаете, что у вас хватит смелости попробовать, обязательно сделайте это.)

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

Для фрейма стека Python, такого как Inspect.currentframe(), найдите начало стека оценки. В версии структуры C это f_valuestack. Исходя из этого, нам нужен способ в Python считывать оттуда значения/объекты Python.

обновление 2 ну, период вознаграждения истек, и никто (включая мой собственный краткий ответ) не предложил конкретного кода. Я считаю, что это хорошее начало, и теперь я понимаю ситуацию гораздо лучше, чем раньше. В обязательном «опишите, почему вы считаете, что должна быть награда» я перечислил один из предложенных вариантов «чтобы привлечь больше внимания к этой проблеме» и в той степени, в которой было чуть меньше дюжины просмотров предыдущего воплощения Проблема в том, что пока я писал это, его просмотрели чуть меньше 190 раз. Так что это успех. Однако...

Если кто-то в будущем решит продолжить это, свяжитесь со мной, и я установлю еще одну награду.

Всем спасибо.

Подробнее здесь: https://stackoverflow.com/questions/443 ... tion-stack
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»