Debugging

2 posts tagged with Debugging

git reset to a given commit

Safely Resetting to a Previous Commit in Git

When working with Git, sometimes you need to reset your working tree to a specific commit while preserving the commit history. This guide explains how to do this safely and understand what’s happening behind the scenes.

The Problem

Typically, when developers want to revert to an older commit, they might reach for git reset --hard. However, this can be dangerous as it:

Decompiling dotnet apps

Sometimes as developers we run into a legacy application that has been running in production for years when suddenly a bug surfaces. If nobody knows where the source code for that legacy application is, that can be a huge problem.

Introduction to .NET Decompilation

Decompilation is the process of converting compiled .NET assemblies (DLLs or EXEs) back into readable source code. This can be incredibly useful when:

  • Dealing with legacy applications without source code
  • Debugging production issues where deployed code differs from source control
  • Understanding third-party libraries when documentation is insufficient
  • Investigating potential security issues or malware

Using dotPeek

dotPeek by JetBrains is a powerful free .NET decompiler that can help solve these problems. I recently had an occasion to use it, and even without the .pdb file, it was able to decompile the code to be very close to the source code we had in source control that we knew wasn’t what was running in production.