Deparsing errors on JUMP_ABSOLUTE

Open
#292 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
python

Research direction

Reproduce the failure with the documented uncompyle6 command on the attached .pyc and inspect disassemble_pyc_content.txt alongside init.txt. Start at the parser/deparser handling the JUMP_ABSOLUTE instruction near offset 709; done means the supplied bytecode decompiles to Python successfully without the parse error.

Written by the indexing model from the issue text.

Description

Python 2.7 Questionable Activity

Description

it gets to "272 709 JUMP_ABSOLUTE 847 'to 847'" in the instruction context and then fails right before an ELSE. "Parse error at or near `JUMP_ABSOLUTE' instruction at offset 709"

How to Reproduce

C:\Users\24131\Desktop\cscripts>uncompyle6 -o __init__.py .\dependencies\svtools\itp2baseaccess\__init__.pyc
Instruction context:
->
 272     709  JUMP_ABSOLUTE       847  'to 847'


# file .\dependencies\svtools\itp2baseaccess\__init__.pyc
# Deparsing stopped due to parse error
.\dependencies\svtools\itp2baseaccess\__init__.pyc --
# decompile failed

Expected behavior

Can decompile to py successfully

Environment

  • Uncompyle6 version: uncompyle6 3.5.0
  • Python version: Python 2.7.14
  • OS and Version: Windows7

Additional Environment or Context

I don't have source code and I disassemble
Python bytecode by https://stackoverflow.com/questions/11141387/given-a-python-pyc-file-is-there-a-tool-that-let-me-view-the-bytecode/42720524 (change import dis to import xdis.std as dis) => attach(disassemble_pyc_content.txt), hope it is helps

disassemble python byte code => disassemble_pyc_content.txt

fail python context => init.txt

Dominant language
Python
Stars
4.3k
Forks
463
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rocky/python-uncompyle6

All issues in rocky/python-uncompyle6

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.