![]() Figure 1 describes the steps involved in the process.įigure 1: Steps involved in post-mortem debugging. This methodology is called post-mortem debugging. If somehow you can look into the memory space of processes and get to the right data structures, there is a very good chance that you can find the root cause of problem. The main idea behind these methodologies is that when a process is in an unhealthy state, the process itself contains critical data that you can use to find what’s going on. Post-Mortem Debuggingįor the situations described above, there are some proven methodologies that you can use to get to bottom of the issues. This article will talk about some approaches that you can take to tackle these types of situations. These last two scenarios describe what it means to debug hard to reproduce issues. This is really a pressure game your team will be under lot of pressure to resolve these problem ASAP that you don’t know how to reproduce. You know this client generates most of the revenue for your company and because of product downtime, your company is losing money as well. Your team cannot re-produce this problem in-house. At that site the client observes problems like app crashing and the application will hang. It’s working fine for all of them except one. Let’s say your product is deployed to several customer sites. So now you have to debug this problem that you cannot reproduce. As far as you can tell there is no hardware or software configuration difference that can cause this problem. Suppose these are problems that haven’t been seen before so your team may try to reproduce the problem but have no luck with it. And only after release do you start getting complaints like application crashing, slow performance or the application has hung. Suppose that your product is released and deployed to customer sites. Again, there is nothing exciting in this scenario because this is a typical step in the software development lifecycle. Now let’s say your product is with the QA team and during testing they find some bugs in the product. Most developers would just fix those bugs and move on. Frankly there is nothing abnormal in this scenario and as a software developer you always strive to minimize the number of bugs in your code. While writing some code you come across some bugs. Let’s say you are working on your company’s flagship product. In order to really understand the challenges with debugging hard to reproduce issues, let’s walk through a few scenarios here. Whenever we are confronted with any bug in code, our typical first question is, “How can I reproduce this issue?” Any problems that cannot be reproduced are generally considered tricky to resolve. ![]() It’s an essential and integral part of our day-to-day job. Software developers live and breathe debugging.
0 Comments
Leave a Reply. |