JBCobb.net

Free software, the blues and life in the big city.

  • Home
  • DVD Metabase
  • Hold your breath
  • JBCobb.net
  • Jeff Cobb

2

Dec

MicroLog 1.0a

Posted by JeffC  Published in General, Microlog, Technology

There are two things every programmer of multithreaded applications knows:
1. Logging is the simplest form of debugging for such systems.
2. The act of logging triggers context switches which changes the execution which in turn means the application behaves differently under debugging conditions than it does under normal conditions.

Often the application of #1 results in #2 meaning the “bug” can go away or change in nature to the point where the original bug is no longer obvious. You can assume that you have the bug fixed yet as soon as you remove/disable the debug code and the bug can return or worse, uncover a completely new one.

Part of the reason for this is that writing to a log, socket or other place to store the log will cause the kernel to execute a context switch. This means that different threads will execute in a different order under debug conditions…this is what I call “the observer effect”: a watched program executes differently than one running in release mode. This is even more noticeable when running it under GDB or Valgrind for example.  There are two ways to deal with this:


continue reading "MicroLog 1.0a"

2 comments

Search

Blog Feed

  • Add blog to any reader
  • Comments Rss
September 2010
M T W T F S S
« Jul    
 12345
6789101112
13141516171819
20212223242526
27282930  

Pages

    Home
  • JBCobb.net
  • DVD Metabase
  • Jeff Cobb
  • Hold your breath

Blogroll

  • Development Blog
  • Documentation
  • Plugins
  • Suggest Ideas
  • Support Forum
  • Themes
  • WordPress Planet

Categories

  • anime (1)
  • Blues (6)
  • DVD Metabase (11)
  • EZRip (9)
  • General (20)
  • Microlog (1)
  • Technology (41)
  • Uncategorized (1)
  • VOD (16)

Archives

  • July 2010 (1)
  • May 2010 (1)
  • February 2010 (1)
  • January 2010 (1)
  • December 2009 (1)
  • November 2009 (1)
  • October 2009 (1)
  • August 2009 (1)
  • July 2009 (1)
  • May 2009 (1)
  • April 2009 (2)
  • March 2009 (2)
  • February 2009 (1)
  • January 2009 (2)
  • December 2008 (1)
  • November 2008 (2)
  • October 2008 (3)
  • September 2008 (2)
  • August 2008 (4)
  • July 2008 (1)
  • May 2008 (2)
  • April 2008 (3)
  • February 2008 (2)
  • January 2008 (4)
  • November 2007 (1)
  • October 2007 (3)
  • July 2007 (5)

Recent Post

  • Of stupid moves that will lead to a better system, libfoundation and more…
  • New subproject: libfoundation
  • CMake Wizard 2.3 (Maint. release)
  • Microlog 1.1a
  • MicroLog 1.0a
  • A Video Interview Using Free Tools
  • New directions for DVD Metabase: development odds and ends…
  • CMakeWizard 2.2 is released
  • Concurrent development challenge: The Problem (part 2)
  • FOSS: Freedom to explore, create and avoid intellectual speed-bumps

Recent Comments

  • JeffC in Of stupid moves that will lead to a better system,…
  • Trindflo in Of stupid moves that will lead to a better system,…
  • Send Flowers to Canada in The difference between "Don't wanna" and "Can't"
  • millee in The Delmark 55th Anniversary Show
  • Binaural Beats in The difference between "Don't wanna" and "Can't"
  • error in testfile GTK in CMake Wizard 2.3 (Maint. release)
  • Volker / Germany in The difference between "Don't wanna" and "Can't"
  • Processes in uninterruptible sleep in The difference between "Don't wanna" and "Can't"
  • Cheap Computers in The difference between "Don't wanna" and "Can't"
  • JeffC in MicroLog 1.0a
© 2008 JBCobb.net is proudly powered by WordPress
Theme designed by Roam2Rome