Commit Graph

  • c3ef036fd6 Add debugger core. Add new NRefactory. Add editor margin & bookmarks. Eusebiu Marcu 2011-02-11 12:25:42 +0200
  • 95ed5d8694 Merge branch 'master' of git://github.com/icsharpcode/ILSpy #1 Eusebiu Marcu 2011-02-09 09:52:00 +0200
  • be6857b8bc Notes added by 'git notes add' Build Server 2011-02-09 02:15:20 +0100
  • 9387dadfc8 Fixed conditional loops David Srbecký 2011-02-09 01:06:56 +0000
  • 036c99cd93 Notes added by 'git notes add' Build Server 2011-02-09 01:36:33 +0100
  • 0d522ba136 Fixed some missing gotos and labels David Srbecký 2011-02-09 00:35:06 +0000
  • b7da2e351c Notes added by 'git notes add' Build Server 2011-02-09 00:29:29 +0100
  • a420fd6d38 Don't use SimplifyMacros because it breaks the method Body David Srbecký 2011-02-08 23:25:27 +0000
  • 90b472ab87 Notes added by 'git notes add' Build Server 2011-02-08 23:26:31 +0100
  • 949b6adac4 Improve naming of local variables (remove the 'I' in interface names) Daniel Grunwald 2011-02-08 23:24:09 +0100
  • 1d2eb714f7 Remove parenthesis in throw statement. Daniel Grunwald 2011-02-08 23:16:26 +0100
  • 7376ef27f1 Notes added by 'git notes add' Build Server 2011-02-08 23:13:58 +0100
  • 7d4252373c Improve automatic variable names. Daniel Grunwald 2011-02-08 23:10:12 +0100
  • 03edb5cf5c Don't always remove "this." Daniel Grunwald 2011-02-08 23:06:24 +0100
  • 91bd10015a Notes added by 'git notes add' Build Server 2011-02-08 23:07:29 +0100
  • f321e6469a Fix for the first instruction not inlineing David Srbecký 2011-02-08 22:04:56 +0000
  • 185e9e4331 Fix decompiling "this". Daniel Grunwald 2011-02-08 22:54:17 +0100
  • 8ea9509b4b Notes added by 'git notes add' Build Server 2011-02-08 22:53:55 +0100
  • 1498c250ab Move Decompiler/doc to top level. Daniel Grunwald 2011-02-08 22:12:11 +0100
  • ba01ff3117 Notes added by 'git notes add' Build Server 2011-02-08 22:12:10 +0100
  • e2f910a4aa Remove old copy of Cecil. Daniel Grunwald 2011-02-08 22:11:06 +0100
  • d1beef718c Notes added by 'git notes add' Build Server 2011-02-08 21:42:28 +0100
  • cb973e0c74 Make static Options readonly (will likely be removed later) Daniel Grunwald 2011-02-08 21:41:31 +0100
  • a4547f32b5 Notes added by 'git notes add' Build Server 2011-02-08 21:40:00 +0100
  • 014d9b5460 Do not modify Cecil's data David Srbecký 2011-02-08 20:38:47 +0000
  • 3579d27f61 Notes added by 'git notes add' Build Server 2011-02-08 21:23:25 +0100
  • 949e7c2378 Move decompiler code into ICSharpCode.Decompiler; add very simple integration with ILSpy. Daniel Grunwald 2011-02-08 21:23:13 +0100
  • 6cadb0d669 Merge branch 'master' of github.com:icsharpcode/ILSpy Daniel Grunwald 2011-02-08 21:11:20 +0100
  • 796f6bc806 Notes added by 'git notes add' Build Server 2011-02-08 21:06:48 +0100
  • 56cbecb00b Import of decompiler David Srbecký 2011-02-08 20:04:05 +0000
  • 36f29f72e5 Moved everything into top-level directory David Srbecký 2011-02-08 20:01:09 +0000
  • 1fb4685f86 Moved dissertation files David Srbecký 2011-02-08 19:56:16 +0000
  • 69753642eb Support for try-catch blocks David Srbecký 2011-02-07 21:17:21 +0000
  • eed0f0af6c Refactoring the data model David Srbecký 2011-02-05 15:35:47 +0000
  • 44e1258b5f Updated decompiler to the new Cecil David Srbecký 2011-02-04 20:30:25 +0000
  • 8ff03b14bd Updated Cecil David Srbecký 2011-02-04 20:27:55 +0000
  • 89c39bbb66 Show open dialog so that the executable to decompile can be chosen David Srbecký 2009-02-03 19:05:53 +0000
  • 2eff4f0443 Dissertation David Srbecký 2008-04-08 20:31:35 +0000
  • a26fd6c0b2 Decompiling class 'ReversiForm'. Initial support for the switch bytecode David Srbecký 2008-03-29 17:40:00 +0000
  • edc9e53590 Stack analysis for methods that include exception handlers David Srbecký 2008-03-29 02:05:11 +0000
  • 7b93f5762b Constructors of multidimensional arrays. Typing for setting an element of multidimensional array. David Srbecký 2008-03-29 00:28:45 +0000
  • b89018a214 Added class constructors David Srbecký 2008-03-29 00:01:38 +0000
  • 5adc88672a Use the new representation to handle 'dup' instruction better. The outputted code is now just 'count++;'. This access to field previously involved a temporary variable. David Srbecký 2008-03-28 22:11:13 +0000
  • 4beea5c6a1 Completely rewritten ByteCodeExpressions. It is now new representation of the code - that is, an extra stage in the decompilation process. It is independent of the previous representation and thus it can be much more easily transformed. David Srbecký 2008-03-28 21:30:30 +0000
  • 9f4dc8611d Rename StackExpression to ByteCodeExpression David Srbecký 2008-03-18 00:31:34 +0000
  • 8d22eb6b25 Include casting in precedence list David Srbecký 2008-02-10 21:09:48 +0000
  • 22aa769433 Draft 1 of progress report is the final version David Srbecký 2008-02-10 20:33:02 +0000
  • f5a3052d23 generate code for dup David Srbecký 2008-02-06 23:50:02 +0000
  • 15e2cd828a Rename unknown bool variables to "flag". David Srbecký 2008-02-06 23:13:19 +0000
  • a87a9468e7 Track the type of expression. Zero and One are tracked as special types so that they can be substituted with 'true' or 'false'. David Srbecký 2008-02-06 23:08:12 +0000
  • e252a7d1f2 Format of output: Joint bodies of if statement with single-line "} else {" David Srbecký 2008-02-06 22:30:52 +0000
  • 9d1705486d Generate property getters and setters. Insert empty lines between generated methods. David Srbecký 2008-02-06 22:15:35 +0000
  • c3aedb0b3c Preliminary support for multi-dimensional arrays David Srbecký 2008-02-06 21:55:40 +0000
  • bacab7a00b Idioms "i++" and "i += k" David Srbecký 2008-02-06 21:24:54 +0000
  • 3f268ec44f ldsfld stsfld David Srbecký 2008-02-06 20:57:06 +0000
  • 059e91cdd9 Do not include explicit reference to 'this' David Srbecký 2008-02-06 20:44:43 +0000
  • 10a96cf79f Include member reference and method invocation in precedence list. David Srbecký 2008-02-06 20:31:02 +0000
  • a284dd920d Remove parenthesis from: condition, assignment, variable definition David Srbecký 2008-02-06 20:15:53 +0000
  • 109d3f8649 Remove parenthesis that are not needed due to C# left associativity. David Srbecký 2008-02-06 19:56:04 +0000
  • 704a8c769e Remove some parenthesis that are not needed due to C# operator precedence. David Srbecký 2008-02-06 19:44:56 +0000
  • 0d3dd5de44 Apply the negation reduction twice. Also handle expressions in from "!!a" David Srbecký 2008-02-06 17:30:10 +0000
  • f1c1d34cba Simplify expressions by pushing negations inside. Includes application of De Morgan's laws. David Srbecký 2008-02-06 17:15:27 +0000
  • dacfade7df Remove parenthesis from primitive value, identifies and expression statements. David Srbecký 2008-02-06 15:35:10 +0000
  • 6faf690899 Parenthesize all expression to ensure correctness. David Srbecký 2008-02-06 15:25:05 +0000
  • 459742f3ca Simplify short-circuit branches ("a && b" or "a || b"). Two new node types were created for this: SimpleBranch and ShortCircuitBranch. The short-circuit branches are found by pattern finding - single short-circuit branch forms a specific triangular pattern in the control flow graph. Nested short-circuit branches are found by doing this node reduction repeatedly. David Srbecký 2008-02-06 14:50:36 +0000
  • 7abcfaa3ed Conditional jumps now alone in basic block so that they can be expressed as single bool expression. David Srbecký 2008-02-02 21:26:25 +0000
  • cefcba99d1 When conditional does not have any common reachable nodes, create only 'true' body. 'False' body is then implicitly the code after the conditional. David Srbecký 2008-02-02 17:41:12 +0000
  • a455a6be02 Increased the reduction max count to 10000 David Srbecký 2008-02-02 16:10:08 +0000
  • 5b997bd44d Splitted the next statement finding algorithm to several reusable parts. David Srbecký 2008-02-02 15:59:11 +0000
  • 110defad02 The next statement for the end of loop is start of loop David Srbecký 2008-02-02 14:44:03 +0000
  • ba59de34fb When looking what follows a 'goto' statement, exit and enter code blocks. This simplifies code like: if (p) { Code(); goto Label; // This goto is redundant } for(;;) { Label: Code(); } David Srbecký 2008-02-02 14:10:58 +0000
  • e6269f491b Moved jump reduction to the Ast transform phase David Srbecký 2008-02-02 12:41:00 +0000
  • 3643debd61 The Target of decompilation is now Board. It has plenty of nested 'for' loops and 'if's. David Srbecký 2008-02-01 23:52:32 +0000
  • eaa7a63343 castclass David Srbecký 2008-02-01 23:23:52 +0000
  • 3ca49743ae ldtoken David Srbecký 2008-02-01 23:14:25 +0000
  • 49eeb49d1b newobj David Srbecký 2008-02-01 22:54:53 +0000
  • 6e7f51fad7 Property access. (Detect properties by naming convention; still needs to be done properly) David Srbecký 2008-02-01 22:47:33 +0000
  • 57192a1fdc stfld David Srbecký 2008-02-01 22:02:53 +0000
  • 86ca89b055 callvirt David Srbecký 2008-02-01 21:51:07 +0000
  • 6e4b542709 ldfld David Srbecký 2008-02-01 21:47:49 +0000
  • 40e1edd7d9 Fixed all bugs that prevented the decompiler from running. The output of decompilation is saved in file output.cs Unsupported expressions are handled a bit more gracefully - for example: IL__callvirt(set_AutoSize(), (IL__ldfld(titleLabel, @this)), 1); this is will eventually become this.titleLabel.AutoSize = 1; David Srbecký 2008-02-01 21:42:11 +0000
  • bc89f0a071 Target of decompilation is now AboutDialog in the Reversi game. David Srbecký 2008-02-01 20:28:10 +0000
  • 42451cbd9d Added a Reversi game from http://www.codeproject.com/KB/game/reversi.aspx David Srbecký 2008-02-01 14:32:43 +0000
  • 48c25a5821 Progress Report - Draft 1 David Srbecký 2008-01-30 21:40:54 +0000
  • 3aa8cc498c Initial GUI options loaded loaded from class David Srbecký 2008-01-28 21:32:35 +0000
  • 598dcfd92c Bugfix in SimplifyTypeReferences - calling it for second time corrupted some type names David Srbecký 2008-01-28 21:30:49 +0000
  • af14439362 Terminating all optimizations with exceptions David Srbecký 2008-01-28 21:21:58 +0000
  • 27d8b0107d Include blocks jumping outside the parent not as being conditionals David Srbecký 2008-01-28 20:49:28 +0000
  • a95748dc66 More GUI options David Srbecký 2008-01-28 19:47:17 +0000
  • 27d70d6897 Reduce "String.Concat(a, b)" to "a + b" David Srbecký 2008-01-28 18:58:57 +0000
  • 35f06e0a4b Label is not reference counted object anymore, it is just a string. During transform we in two passes - find all live labels - remove all dead ones (the rest). David Srbecký 2008-01-28 18:25:25 +0000
  • 9aff0b724d Simplify the transform code by using extension methods. David Srbecký 2008-01-28 18:03:33 +0000
  • 479918e7bc Remove MyBlockStatement. David Srbecký 2008-01-28 17:21:12 +0000
  • ea50b09c0d NRefactory: Add NodeCollection.AddRange method David Srbecký 2008-01-28 17:20:01 +0000
  • 07a2cb2a84 NRefactory: Set parent of child when it is added to collection David Srbecký 2008-01-28 17:15:46 +0000
  • 932cf1a232 NRefactory: INode.Children type changed from List<T> to more general IList<T> David Srbecký 2008-01-28 17:12:38 +0000
  • e42166ca85 Add NRefactory source code David Srbecký 2008-01-28 16:10:14 +0000
  • 34c8127a9b Restore loop initializer David Srbecký 2008-01-28 14:30:00 +0000
  • 5b48611b69 Replace variable name for integers with "i", "j", "k", etc... David Srbecký 2008-01-28 14:02:39 +0000
  • 08528a768a Reduce 'if' statements in loops. David Srbecký 2008-01-27 23:43:05 +0000