832f35413b
feat: mix str for disasm
2025-03-02 23:48:24 +08:00
dacfd29c02
wip: co_flags
2025-02-28 16:56:15 +08:00
2cab8c4c92
wip: header parsing
2025-02-27 16:10:30 +08:00
Alex
cb32b581ee
Add one more missed flag: CO_ASYNC_GENERATOR (#505)
...
* Support for JUMP_BACKWARD
* Add missed flag CO_ASYNC_GENERATOR
* Revert "Support for JUMP_BACKWARD"
This reverts commit 81543ece8c481b6e6b0f5724d8aa6766d3dcb8ae.
2024-08-05 12:35:10 -07:00
Michael Hansen
c925dafcdf
Also update the disassembly output to match the new flag values
2024-08-04 12:55:35 -07:00
Levak Borok
2ae7f58a26
Fix Long Numeric Integer representation for Python 3
...
Before Python 3, long integers were input with an L suffix. Since
Python 3, all integers are 64-bit and do not need the L suffix.
2024-06-22 23:19:18 +02:00
Michael Hansen
795ad1861d
Also show the first line when using --pycode-extra
2023-11-30 12:49:04 -08:00
Michael Hansen
21c35b2f4c
Simplify PycDict key/value storage a bit
2023-11-09 15:05:55 -08:00
Michael Hansen
753d42d94a
Simplify string object printing to reduce code duplication
2023-06-09 09:09:03 -07:00
Michael Hansen
4b4f9f8edb
Fix impossible condition in pycdas Code dump
2023-06-08 14:30:09 -07:00
Michael Hansen
bf3599c87a
Move some output stream parameters forward.
...
This allows us to avoid removing parameter defaults for these functions.
2023-06-05 13:56:25 -07:00
Michael Hansen
46ea76c0e9
Clean up file handling in main()s, and remove a leak
2023-06-05 13:54:26 -07:00
Michael Hansen
8bb8386764
Fix some issues with formatted_print:
...
* Add a va_list version which can be correctly used by ivprintf (fixes pycdas output)
* Use a `const char*` format parameter to avoid the need for clang warning workarounds
* Make better use of return values.
2023-06-05 13:49:04 -07:00
Perceval Wajsbürt
c4c35fc531
Use C++ streams over C style IO
2023-06-02 01:12:59 +02:00
Akash Munagala
80e835e197
Properly output frozenset object in pycdas
2023-02-13 19:26:30 -08:00
Michael Hansen
60e4eb6316
Handle CACHE instructions in decompyle, and suppress them in disassembly by default.
...
Showing CACHE instructions and the extra PyCode fields in pycdas is now
controlled by command-line arguments.
2023-01-19 14:50:55 -08:00
Michael Hansen
379c0c94d0
Merge <3.11 VarNames and >=3.11 Locals+Names into a single variable for simplicity.
...
Also cleans up some extra verbose output by making extra PyCode fields optional
2023-01-19 11:32:07 -08:00
Michael Hansen
dfb0a976c5
Add additional Code object fields to disassembly output.
2023-01-19 11:32:07 -08:00
Michael Hansen
ffeabc3d3f
Make cast() checked by default and add try_cast() for cases where a cast
...
is not required to be successful.
2022-12-01 16:13:31 -08:00
Michael Hansen
e623e9ac56
For String Refs, inherit the type of the reffed string object.
2022-12-01 11:42:31 -08:00
clubby789
942193e88b
Style changes
2022-06-16 12:49:04 +01:00
clubby789
dc50479d06
Add support for pycdas/pycdc using marshalled code objects
...
These requires the Python version to be specified as the Pyc header
magic is not present.
2022-06-15 11:33:11 +01:00
Michael Hansen
96ef91b5f9
Allow specifying an output filename on the command line, instead of forcing reliance on shell redirection.
...
Closes #31
2022-04-26 14:56:12 -07:00
Michael Hansen
428d11c4b5
Add bytecode and disassembly support for Python 3.8.
...
Also fixes running pymultic from outside of its source directory.
2019-10-14 14:48:26 -07:00
Michael Hansen
8014ac2b14
Print unicode as default in Python 2.x when CO_FUTURE_UNICODE_LITERALS
...
is set.
Fixes #141.
2019-10-06 14:34:24 -07:00
Michael Hansen
5c896fa743
Clean up some loops with range-based for.
2019-10-04 15:56:24 -07:00
Michael Hansen
bf60a5831b
Fix several undefined behavior issues identified by @nrathaus.
...
Fixes #147.
2018-01-28 15:37:44 -08:00
Michael Hansen
a9a362254e
Use fputs instead of fprintf when no formatting is required
2018-01-28 15:37:44 -08:00
Michael Hansen
b9dd99d518
Don't create special objects for NULL, just use NULL directly.
...
Also move null check into PycRef for nullable references.
2017-07-05 16:36:04 -07:00
Michael Hansen
7efcf04bcd
Display KW only arg count in pycdas output
2016-09-03 11:05:03 -07:00
Michael Hansen
4b55e0bcea
Fix '...' missing in output
2016-08-30 13:32:53 -07:00
Michael Hansen
5fae3e2d1f
Add Python 3.5 disassembly support
2015-10-01 16:06:09 -07:00
Michael Hansen
820397f9bf
Interned strings and ASCII literals are always in the native format
2014-01-21 00:47:11 -08:00
Michael Hansen
176a049a68
Support new marshal types from Python 3.4
2014-01-21 00:42:37 -08:00
Michael Hansen
f030a77767
Allow for output file override
2011-10-23 19:04:06 -07:00
Michael Hansen
c474d368a1
Use less conflicting filenames
2011-10-23 17:48:10 -07:00
Michael Hansen
6a93c9f22d
Actually output PyLong constants
2011-09-23 21:46:05 -07:00
Michael Hansen
7ffa2562c3
Merge uncommitted changes from old SVN copy
2010-09-03 21:50:35 -07:00
Darryl Pogue
49c15b324c
Updates to make progress. Progress is good.
2010-08-31 23:17:38 -07:00
Michael Hansen
7ce87a2ec3
Added windows/VS stuff
2010-04-12 12:59:44 -07:00
Michael Hansen
7bb356d00a
Improved output formatting, and added more instruction support
2009-08-03 23:13:50 +00:00
Michael Hansen
03042b7e23
Decoding simple files with functions and assignments is now possible
2009-07-27 00:23:49 +00:00
Michael Hansen
98a50fd042
Added the rest of the marshalable types, and more info to the disassembly output (including a bytecode position counter to help with jump calculations)
2009-07-25 02:41:15 +00:00
Michael Hansen
3b389f4b00
Added GPL v3 license file
2009-07-25 00:43:46 +00:00
Michael Hansen
47b3a24c29
Some more Py1k fixes, and added Py3k support
2009-07-25 00:02:31 +00:00
Michael Hansen
b11b69c9de
Another fix for old Python versions
2009-07-24 23:21:56 +00:00
Michael Hansen
1806dda346
Fix for old python versions
2009-07-24 23:19:46 +00:00
Michael Hansen
3d813075bd
Finished dicts ;)
2009-07-24 21:39:51 +00:00
Michael Hansen
8b0fc18921
Added more info to the disassembly
2009-07-24 19:52:47 +00:00
Michael Hansen
da046a9a90
Code so far
2009-07-24 08:35:21 +00:00