DotNetBlackbox

Runtime analysis (Post mortem debugging) for your C# or VB.NET Application in your customers environment

FAQ - Frequently asked Questions

Video: How DotNetBlackbox works.For detailed information please fullscreen and pause the video

DotNetBlackbox allows you to
  • Analyze the runtime of your C# or VB.NET program after it has crashed in your customers environment
  • Retrace each step individually forwards and backwards
  • Find the command that was last executed (caused the crash)
  • Analyze which commands have been executed particularly frequently

Download demo version

DotNetBlackbox V1.21.5.19 Windows 10 (x86+x64), free Demo Version

Order full version

Click here to order the full version

Screenshots

FAQ - Frequently asked Questions

What is DotNetBlackbox?

DotNetBlackbox is a real "post mortem Runtime Debugger" for C# or VB.NET. It works like the black box of an airplane. The two recorded log files
- .RIF (Runtime Information File for commands) and
- .RIV (Runtime Information for variable values)
are analyzed after your app has crashed or ended properly.
DotNetBlackbox generates a copy of your C# or VB.NET source code and extends every command with a pre-log command. So every command is logged, when you execute your compiled solution in your customers environment. After the crash (or when you quit the program) the log files can be analyzed by DotNetBlackbox in a very convenient way. You can step through each command forward and backwards and view the value of variables you have selected for waching before.

How can I watch variables?

You can record any variable value during runtime in your customers environment. Internally the object will be converted into a string (it always uses the public .ToString() method). To do this, create a specific comment in your source code. For example, if you want to log the variable "sum" in your source code, place a harmless comment in exactly this way. DotNetBlackbox replaces the comment in the generated code by a log call:
  C#
  1: int sum=0;
  2: for (int i=1 ; i<=10 ; i++) {
  3:      sum+=i;
  4:      //#DotNetBlackboxLogVariable sum #//
  5: }
  6: Console.WriteLine(sum);
  
VB.NET 1: Dim sum as Integer = 0 2: For i = 1 to 10 3: sum = sum + i; 4: ''#DotNetBlackboxLogVariable sum #'' 5: Next 6: Console.WriteLine(sum);
Please always observe the data protection regulations that apply to you when logging personal data.

How can i shrink the log file?

It depends on what you specify in the settings. For example, you can specify, that the file will be cutted at the top every 100,000 lines.

Another possibility is to exclude those lines of code from processing that you think, they are in no way responsible for the crash. This applies to large program loops that are called frequently. Please watch the video for further detailed instructions.

Can DotNetBlackbox be used in a Web Application (ASP.NET) under IIS environment

Yes. But you have to ensure that

  • The IIS home folder has to be set to the compiled binaries
  • All virtual folders are created in IIS, if your Web Application requires them
  • Maybe you should create a own Application Pool for your application
  • The running process user (IIS_IUSRS) has write access to the output folder you have defined when you generated the new solution
  • The RIF and RIV files are locked during runtime. To unlock the files (force writing the cache) you have to stop the IIS server (net stop w3svc or stop the application pool). Maybe in production envirionment this isn't possible. For this case maybe you should create a specific test subdomain and application pool for your web application.

What, if it does not work?

DotNetBlackbox is still relatively new. I therefore apologize, if there are still errors. Feel free to send me an email for support issues: DotNetBlackbox@fssoft.de.

Greetings from Bavaria
Robert Fischbacher

Disclaimer

We cannot accept any responsibility for any loss, disruption or damage to data of you or your customers which may occur whilst using this software.

Copyright © 2021 Fischbacher Software