Patent ID: 7493598

Claim:
A computer implemented method of debugging a software module during software development, said method comprising the steps of: generating different messages related to said software module; wherein said different messages have different levels of details; distinguishing different levels of details for each of said different messages; associating different levels of details with multiple repositories; associating a buffer with each of said multiple repositories; wherein said buffer has an initial size and an initial expiration time; logging said different messages into a repository among said multiple repositories, based on their level of details; time-stamping said different messages within said multiple repositories; expiring said different messages within said multiple repositories based on their level of details and their time-stamps; wherein a first repository among said multiple repositories is associated with a first level of details; wherein a second repository among said multiple repositories is associated with a second level of details; wherein said first level of details is higher than said second level of details; wherein messages corresponding to said first repository are removed earlier than messages corresponding to said second repository; using information from said first repository and said second repository for diagnosis and debugging of said software module; dynamically defining a threshold for logging an error event; using said threshold for logging said error event; wherein if said error event occurs, tracing a sequence of events from said multiple repositories leading to said error, and recording said sequence of events in a debugging memory; redefining said threshold for logging said error event, based on new user-configurable parameters; and based on said redefined threshold, adjusting said recorded sequence of events in said debugging memory, dynamically adjusting said expiration times, and dynamically adjusting said buffer sizes.