Title | Content |
---|---|
Title | DILE |
Version | v0.2.13 |
Author | Petrény Zsolt |
Author website | http://pzsolt.blogspot.com/ |
Description |
Dotnet IL Editor (DILE) v0.2.13 This is the v0.2.13 release of DILE which contains both disassembling and debugging related enhancements and/or bug fixes. The known bugs are described below, but should you find anything else, please let me know using the project's homepage [1] or the following e-mail address: dile.project@gmail.com. Debugging has been tested with v1.1, v2.0, v3.0, v3.5 and v4.0 applications but theoretically it should work with v1.0, v4.5 and Mono programs as well. Note: every grid and listview has an associated context menu that includes some basic and specific (depending on the context) commands. Text editor: Items which are opened will be shown here. Right now, this is functioning as a text viewer as it's read-only. By right-clicking on it, a context menu is shown with 2 menu items: "Locate in Project Explorer". This will jump in the Project Explorer to the currently shown item's node. The second option is the "Set IP to this instruction" but this appears only during debugging when the active frame is displayed. Used colors: Red - Active breakpoint. Orange - Inactive breakpoint. Light Blue - Not exact caller/current instruction pointer. Light Green - Exact caller instruction pointer. Yellow - Exact current instruction pointer. Panels: 1. Project explorer This panel contains the loaded assemblies and their content in a tree structure. By double-clicking on a leaf node, its definition will be opened. By right clicking on a node, a context sensitive menu appears. The menu items are the following:
In the settings dialog ("..." next to the textbox) the options can be changed per-project. These settings are stored in the .dileproj file.
Object Viewer This window helps to inspect an object during debugging. On the left side a tree structure can be seen which represents the object's hierarchy. The object's fields and properties which are also objects are displayed as a node. By expanding such a node its object fields and properties are displayed as child nodes. When a node is selected then the given object's fields, properties and ToString() method will be evaluated and the results will be displayed on the right side. When an evaluated result is an object then by double-clicking on it, its values will be displayed similarly as if the tree node would have been expanded and the value selected. Different expressions can be entered in the Expression field in the top of the window that will be evaluated during debugging. Local variables, arguments and auto objects can be referred by their name (V_0, V_1, A_0, A_1, {expression} etc.). This feature is similar to the Visual Studio's Quick Watch thus the expressions have to be given similarly as well. There are some special rules however:
Here are a few expressions that I used for testing: 5 -6 1 + 2 3 - 10 / 5 5 (1 + 2 3 - 10 / 5 * 5).ToString() (-5).ToString() new object() + "a" "abc".Length.ToString() System.Type.GetType("System.String").GUID.ToByteArray() TestApplication.DebugTest.CreateOperatorTest4("op1") | true TestApplication.DebugTest.ParamsTest2() TestApplication.DebugTest.ParamsTest2(5, 6) System.String.Format("{0}{1}{2}{3}{4}", "a", "b", "c", "d", "e") new object[] {4, "a", 5} ((System.Exception){exception}).Message TestApplication.GenericClass<int, System.DateTime>.StaticMethod<string>("test") new TestApplication.TestClass<int, string>[] {new TestApplication.TestClass<int, string>(1, "one")} TestApplication.GenericClass<int, string>.NestedGenericClass<System.Type>.StaticMixedMethod<System.DateTime>(System.DateTime.Now, 5, null) and so on... Attach to process In this dialog currently running managed processes are displayed. The .NET Framework version used by the debuggee is automatically detected. The list of managed processes can be refreshed with the Refresh button. Default shortcuts: Ctrl + N - Create a new project. Ctrl + O - Open an existing project. Ctrl + S - Save the current project. Ctrl + Shift + S - Save the current project to a new file. Ctrl + T - Settings. Ctrl + Tab - Select current window. Ctrl + Shift + W - Close all windows. Ctrl + P - Attach to a running process. Ctrl + W - Display the Object Viewer window. F5 - Run the selected startup project. F9 - Toggle breakpoint at the current line. F10 - Step over. F11 - Step into. F12 - Step out. Ctrl + F10 - Run to cursor. Disassemble related known bugs: - if a permission set is not stored in the assembly as an xml string then it will not be shown correctly (most likely, strange unicode characters will be displayed). Right now, if the program encounters something that is not recognized then NotImplementedException will be thrown which will be displayed in the "Information Panel". If this happens, please let me know, send me the assembly as an attached file if it's possible; or a description of how can the error be reproduced. Debugging related known bugs:
Requirements: - Windows ;-) - .NET Framework 4.0. The program was compiled and tested with the RTM version (v4.0.30319) which is available from MSDN [2] for free. - in some cases, the Visual C++ 10 SP1 runtime files might be missing; these can be downloaded and installed from the Microsoft website (x86: [7] and x64: [8]) Source code: The source code looks awful. There are no comments and the exception handling is also quite simple. But the code is available in an SVN repository on SourceForge [1] for the curious ones. ;-) Installation: xcopy :-) Usage: dile [/p "Project name"] [/a "assembly path"] [/l "project name.dileproj"]
If a parameter is followed by a name/path which contains spaces then it should be written between quotes. Examples: Create a new project with the name Test project: dile /p "Test project" Create a new project called Test project and add the TestAssembly.exe to it: dile /p "Test project" /a TestAssembly.exe Create a new project and add the TestAssembly.exe and another My test.dll from a different directory: dile /a TestAssembly.exe /a "c:\assemblies\My test.dll" Load an existing project: dile /l TestProject.dileproj Feedback: You can contact me via my blog [3], the project's homepage [1] or the following e-mail address: dile.project@gmail.com. The program uses Weifen Luo's DockPanel Suite [4]. Links: [1] Project homepage: http://dile.sourceforge.net/ [2] .NET Framework 4.0: http://www.microsoft.com/en-us/download/details.aspx?id=17851 [3] My blog: http://pzsolt.blogspot.com [4] DockPanel Suite: http://sourceforge.net/projects/dockpanelsuite/ [5] Visual Studio File Finder Add-In: http://www.codeproject.com/dotnet/VS_File_Finder.asp [6] Mike Stall's .NET Debugging Blog - Debugging IL: http://blogs.msdn.com/jmstall/archive/2004/10/03/237137.aspx [7] Microsoft Visual C++ 2010 SP1 Redistributable Package (x86): http://www.microsoft.com/en-us/download/details.aspx?id=8328 [8] Microsoft Visual C++ 2010 SP1 Redistributable Package (x64): http://www.microsoft.com/en-in/download/details.aspx?id=13523 |
View: | 1610 |
Publish time |
6 years ago
2018-11-11 12:51:03
|
Tags | |
Download |
|
AcTioN |
|
Please login/register to Leave a Reply