Rubato and Chord
Reiley's technical blog
Batch File with Self-Awareness
Batch file is a double-edged sword, the good side is that batch file runs on almost all of the...
Date: 09/09/2013
Pop Quiz - JavaScript for Fun
Most people could write something in JavaScript, though they barely made it correct. I started using...
Date: 06/15/2013
Vector Deleting Destructor
Today one guy in my team asked a question regarding the behavior of delete[] operator in C++ - how...
Date: 05/09/2013
Undocumented Environment Variables
Although we have less Easter Eggs, there are still a huge number of undocumented behaviors. Recently...
Date: 05/08/2013
The Pit of Success
The Pit of Success: in stark contrast to a summit, a peak, or a journey across a desert to find...
Date: 04/27/2013
Error and Exception Revisited
Unless suffering is the direct and immediate object of life, our existence must entirely fail of its...
Date: 04/05/2013
A Debugging Approach to Windows RT
Recently I got a Surface with Windows RT. Needless to mention, it's wonderful! I've figured out some...
Date: 12/26/2012
Postmortem Debugging - Better Late Than Never
If there is a consistent repro, I would definitely prefer Early Debugging. However in the real life...
Date: 10/21/2012
Windows 8 and conhost.exe
While debugging a console application on Windows 8, I noticed the console application is trying to...
Date: 09/13/2012
Visualize Assembly using DGML
Starting from Visual Studio 2010 Ultimate there is a cool feature called DGML (Directed Graph Markup...
Date: 08/19/2012
Using Function Evaluation in WinDBG
People who develop debuggers would know in theory you cannot have a perfect disassembler (especially...
Date: 08/18/2012
A Debugging Approach to Application Verifier
Application Verifier, also known as AppVerifier, is a dynamic instrumentation tool for user mode...
Date: 08/17/2012
Collection of WinDBG resources
A list of resources related to WinDBG, debugging on Windows NT, or how to write a debugger. Websites...
Date: 07/28/2012
A Note for Binary Hooking and Instrumentation
One intern in my team has been working on a utility, which makes use of binary instrumentation. So I...
Date: 04/19/2012
x86 Linear Address Space Paging Revisited
Last time we revisited x86 segment addressing, which translates logical-address into linear-address....
Date: 01/07/2012
Process and Job Objects
Just like we mentioned in The Main Thread Problem, some questions do not have direct answer just...
Date: 12/22/2011
CRT Startup
In my previous blog Early Debugging, we've demonstrated how early can you get using a user mode...
Date: 12/14/2011
x86 Segment Addressing Revisited
Memory segmentation was first introduced to x86 family with 8086, to make it possible to access 1MB...
Date: 11/20/2011
The Main Thread Problem
Every few months I heard people asking the same question: Given a process ID (or handle), how can I...
Date: 11/09/2011
What is Autos Window?
The developers in Microsoft have done a great job by bringing a great number of nice features,...
Date: 11/07/2011
Early Debugging
Early debugging is a wide topic, on a Windows PC it might be: Application startup Service startup...
Date: 10/30/2011
Undocumented WinDBG
Abstraction and encapsulation are good because they make it easier to build complex systems,...
Date: 10/30/2011
Use Windows Debuggers for Non-Debugging Tasks
Many people who has been using Emacs for decades were shocked when they heard that Emacs is actually...
Date: 10/23/2011
Yet Another Hello World
Recently I heard there is a COOL programming language called C#, which runs on a popular environment...
Date: 09/29/2011
Side Effects of Debugger
A target program might behave differently if it is being debugged, sometimes this can be very...
Date: 08/27/2011
Did you know...
Have you ever seen the following window before? It was once very popular in the good old days, but...
Date: 08/13/2011
MACRO Revisited
Macro is powerful, but few people understand how it works. In theory, syntax highlighting for C/C++...
Date: 08/12/2011
Pop Quiz - Debug Event Loop and Timeslice Quota
You might have heard of the Popek and Goldberg Virtualization Requirements. In theory, debugger...
Date: 08/08/2011
A Debugging Approach to IFEO
IFEO (Image File Execution Options) is a feature provided by the NT based operating system. It can...
Date: 07/29/2011
A Debugging Approach to OutputDebugString
Using OutputDebugString is a common debugging technique for user mode debugging. It is easy but...
Date: 07/29/2011
Debugging Tips for Multi-Threaded Application
Multi-threaded applications are error-prone and hard to debug, so it's worth a dedicated topic. I...
Date: 07/26/2011
Visual Studio Debugger or WinDBG?
Microsoft has provided a number of debuggers. Visual Studio Debugger would be the most widely known...
Date: 07/21/2011
Data Breakpoints
The Visual Studio debugger supports a kind of breakpoint called Data Breakpoint, sometimes it is...
Date: 07/21/2011
Hello, world...
Yet another Hello World... Well, my name is Reiley Yang. I'm a developer working on the Visual...
Date: 07/11/2011