Browse by Tags

Tagged Content List
  • Blog Post: Update on Virtual PC and profiling

    Last year, Richard explained why sampling does not work on Virtual PC . Since the sampling failure is quite catastrophic, we blocked all profiling on Virtual PC. Some Beta users noticed that we block profiling also for instrumentation-based profiling. If you are one of these people, I have good news...
  • Blog Post: Bugs that hide from debuggers

    Sometimes running a program under a debugger makes it work. Running the same program without a debugger causes a failure or a crash. Here are some reasons why this can happen: 1. Timing - attaching a debugging changes timing and can hide race conditions. Even without single-stepping and without using...
  • Blog Post: x64 calling convention and the disappearing process syndrome

    Raymond Chen describes the parameter passing aspect of the x64 calling convetions . But there is more than parameter passing to the calling convention. Exception handling is an important part of the calling convention. A function that calls another function or needs to allocate stack space or requires...
  • Blog Post: Why doesn’t sampling show the actual time spent in each function?

    Some people have asked for a “wall clock time” column in the sampling profiler report. Unfortunately, the actual time spent in a function cannot be reliably deduced from the collected data. Sampling counts “hits” on a function when a certain event occurs. By default, this event is a CPU cycle counter...
  • Blog Post: There are no Safe Functions – only Safe Programming

    The Platform SDK includes a set of string manipulation functions defined in strsafe.h . These functions were added during the Windows Security push . The functions offer an alternative to the C run-time string functions which is more consistent, and less error-prone than the C standard functions. But...
Page 1 of 1 (5 items)