Как мне просмотреть произвольные записи стека вычислений при наличии указателя кадра 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
В C Python доступ к стеку оценки байт-кода ⇐ Python
Программы на Python
-
Anonymous
1731954048
Anonymous
Как мне просмотреть произвольные записи стека вычислений при наличии указателя кадра C Python? (Некоторые конкретные записи стека можно найти с помощью locals(), я говорю о других записях стека.)
Я задал более широкий вопрос, например этот некоторое время назад:
получение строки аргумента exec C Python или доступ к стеку оценки
но здесь я хочу сосредоточьтесь на возможности читать записи стека CPython во время выполнения.
Я выберу решение, которое работает на CPython 2.7 или любом Python более поздней версии, чем Python 3.3. Однако, если у вас есть что-то, что работает помимо этого, поделитесь этим, и, если нет лучшего решения, я приму это.
Я бы предпочел не изменять C Код Python. В Ruby я фактически сделал это, чтобы получить то, что хочу. По опыту могу сказать, что, вероятно, мы хотим работать не так. Но опять же, если лучшего решения не будет, я приму его. (Насколько я понимаю, что касается очков SO, я в любом случае теряю их в награде. Поэтому я рад пойти посмотреть, как они перейдут к человеку, который проявил самый добрый дух и готовность посмотреть на это, предполагая, что это работает.) < /p>
[b]обновление:[/b] См. комментарий пользователя 2357112 tldr; По сути, это сделать практически невозможно. (Тем не менее, если вы думаете, что у вас хватит смелости попробовать, обязательно сделайте это.)
Поэтому вместо этого позвольте мне сузить область применения до этого более простого варианта. проблема, которую я считаю выполнимой:
Для фрейма стека Python, такого как Inspect.currentframe(), найдите начало стека оценки. В версии структуры C это f_valuestack. Исходя из этого, нам нужен способ в Python считывать оттуда значения/объекты Python.
[b]обновление 2[/b] ну, период вознаграждения истек, и никто (включая мой собственный краткий ответ) не предложил конкретного кода. Я считаю, что это хорошее начало, и теперь я понимаю ситуацию гораздо лучше, чем раньше. В обязательном «опишите, почему вы считаете, что должна быть награда» я перечислил один из предложенных вариантов «чтобы привлечь больше внимания к этой проблеме» и в той степени, в которой было чуть меньше дюжины просмотров предыдущего воплощения Проблема в том, что пока я писал это, его просмотрели чуть меньше 190 раз. Так что это успех. Однако...
Если кто-то в будущем решит продолжить это, свяжитесь со мной, и я установлю еще одну награду.
Всем спасибо.
Подробнее здесь: [url]https://stackoverflow.com/questions/44346433/in-c-python-accessing-the-bytecode-evaluation-stack[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия