In many cases, debugging a program does not involve using a full-fledged debugger - tools such as process monitor can often be successfully used to pinpoint and resolve problems. In some cases, however, a debugger is mandatory. These cases are the ones we cover in this course. This course is designed for experienced developers wishing to understand the internals of their programs - and what *really* happens after the program is compiled. Going back to basics (assembly) the course focuses on the lowest level of program operations, at the primitive level of the CPU, cache lines and registers. It then focuses on the Microsoft Windows Debugger, WinDBG, demonstrating powerful techniques to trace through and bypass program logic.
Click here for detailed syllabus | See exampleUnderstand the inner workings of the Windows Kernel and its various subsystems, from an architectural perspective, as well as through driver writing. The course explains the components, and focuses on them using a sample device driver coded and expanded by the students. Additional hands-on demonstrations using Windows Debugger (WinDBG) are presented, debugging the various kernel structures and APIs. The course has recently been updated to delve deeper into Windows 7 specific enhancements, as well as the upcoming features in Windows 8.
Click here for detailed syllabus | See exampleThis course helps programmers familiarize and adapt themselves to the wonderful world of Windows. Explaining the Win32 API in depth, we explain the basics of process and thread creation, handling Windows messages, file I/O and - in great depth - Windows Sockets.