Commit Graph

39 Commits

Author SHA1 Message Date
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