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 -
AnnouncementsComing 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: