Runtime Flow v1.1.6 released – added the Summary only monitoring option, slightly improved monitoring performance, fixed the null reference exception when starting Visual Studio with the /setup option.
July 22, 2010
Summary only monitoring
The next version of Runtime Flow adds the Summary only monitoring option for a quick overview of an application:
While Full monitoring monitors each function call, Summary only detects only the first function usage. The Runtime Flow window is empty in this mode and the Runtime Summary window shows almost the same content as in the full monitoring mode:
The only visible difference is in the Clear command usage. In the Full monitoring mode, after clearing the events, each function call adds a function to the summary window. In the Summary only mode – only functions that was never used before will be added to the summary window when called.
Summary only monitoring is very fast and well suited for an application reconnaissance with the empty module filter.
July 15, 2010
Runtime Flow v1.1.5 released
Runtime Flow v1.1.5 released – added display of field values, added display of last function call’s parameters in duplicate calls, highlighted a function name in a flow.
Parameters and return value ranges
Previously for duplicate function calls only the first call’s parameters and return value were displayed. In the next version of Runtime Flow the last call’s parameters and return value were added:
You can see the return values range example in the CompareWithString function call.
Class field values
The new version of Runtime Flow adds ability to show field values of objects in parameters and return values:
Currently only simple field types are displayed and only the fields defined by the class itself. Runtime Flow shows runtime object type – while the first parameter of the OnTextBoxGotFocus function is object, actual TextBox type is displayed.
Auto C# properties are implemented using <field_name>k__BackingField fields. Runtime Flow shows them as <field_name>:
Enums are displayed as the enum type and the value field:
July 6, 2010
Monitoring ASP.NET applications
To monitor an ASP.NET application you should start an ASP.NET development server under Runtime Flow monitoring and then just browse to the application in a web browser. Visual Studio 2010 example:
Visual Studio 2008 example:
To go to the source when clicking on a function in a flow, currently you need to manually copy the corresponding pdb file to the temporary ASP.NET files folder:
Runtime Flow v1.1.3 released
Runtime Flow v1.1.3 released – added ability to monitor Silverlight 4 applications, added ability to monitor processes running with the low integrity level, added the Stop monitoring when the command completes option, added the Stop monitoring command, added wait cursors during search, improved overall performance by using in memory storage.
July 5, 2010
Monitoring Silverlight 4 applications
Runtime Flow v1.1.3 adds ability to monitor Silverlight 4 applications. A Silverlight 4 application runs in a browser and to start monitoring it you should specify your preferred browser and a startup page in the Customized Run dialog:
There is one complication when using Internet Explorer in Windows Vista. When started, Internet Explorer creates separate low integrity process to display contents and exits the original process, stopping Runtime Flow monitoring. In this case you should uncheck the Stop monitoring when the command completes option and use the Stop button on the Runtime Flow toolbar (it is not necessary in Windows 7):
Clicking on a function in Runtime Flow currently doesn’t go to the source for Silverlight projects as the Silverlight runtime provides slightly limited information.
July 1, 2010
Members initialization difference between C# and C++
Joe Duffy presented an interesting example where order of members initialization is different between C# and C++ in his On partially-constructed objects blog post. “In C#, member initializers run from most derived first, to least derived. In C++, however, member initializers run alongside the ordinary construction process.” I’ve traced his examples in Runtime Flow:
You see how in C# E’s member is constructed even before the D object, while in C++ E’s member is constructed the last. It is interesting to note that while logically members are initialized before constructors, technically constructors start first and then immediately initialize members.
Runtime Flow v1.1.2 released
Runtime Flow v1.1.2 released – fixed occasional loss of events on application shutdown introduced in v1.1.1.