Reading Notebook: 09-Jan-09

Comments in italics are mine and express my own views, thoughts and opinions

Developer’s Guide to Debugging by M. Wloka, et al.:

Memory debugger vs. general debugger (p. 33)

The missing code as a bug (p. 34) 

Valgrind examples (pp. 36 - 39) - Gflags, Application and Driver Verifiers are analogs of memory debuggers in Windows world. Also Visual Studio and MFC runtime have capabilities to detect various classes of memory errors

Increased resource consumption when using memory debuggers (p. 42) - this is true when full page is enabled on Windows or user mode stack trace DB

Notion of non-standard memory handlers to curcumvent bugs in dynamic memory usage (pp. 42 - 43) - skip free/delete and release all heap at once at the end - I used this :-)

Concurrent Programming on Windows by J. Duffy:

Data publication / privatization via transfer of ownership (p. 33)

Assume that received references via parameters or function arguments are shared by default (p. 34)

Shallow vs. deep immutability (p. 34)

SSA - Static Single Assignment (p. 34) - uses of C++ const for SSA enforcement (p. 38)

Dynamic Single Assignment Verification (p. 38)

Distinction between data vs. control synchronization (pp. 38 - 39)

Critical region as serialized sequence of operations (p. 40)

Code- vs. data-centric critical regions (p. 42)

Semaphore as a generalization of a critical region (p. 42) that allows N threads to enter that region (counting semaphore)

Mutex as critical region with N == 1 - binary semaphore (p. 42) 

Software Factories by J. Greenfield, et. al.:

This book I bought a few years ago and just started reading mainly because of my current work on DebugWare: The Art and Craft of Writing Troubleshooting and Debugging Tools book where I advocate a Software Tool Factory approach.

The book is written by architects of Visual Studio Team System (from backcover)

Root causes of software problems: monolithic construction, excessive generality, on-off development and process immaturity (p. xvii)

Solution: integration of languages, patterns, frameworks and tools  (p. xvii)

Broad horizontal domains (p. xvii) - troubleshooting and debugging is one of them

SF provides unique variants of an archetypical product (p. xviii) - unique special debugging tools as variants of an ultimate debugging tool

- Dmitry Vostokov @ SoftwareGeneralist.com -

Announcements

Coming Soon:

Crash Dump Analysis for System Administrators

New Magazines:

Debugged! MZ/PE: MagaZine for/from Practicing Engineers

New Books:

Windows Debugging: Practical Foundations

DLL List Landscape: The Art from Computer Memory Space

Dumps, Bugs and Debugging Forensics: The Adventures of Dr. Debugalov

WinDbg: A Reference Poster and Learning Cards

Memory Dump Analysis Anthology, Volume 2

Also available:

Memory Dump Analysis Anthology, Volume 1

New Children's Book:

Baby Turing

Leave a Reply