Eclipse: Add Debug Statements to Code You Don't Own



One of the tricky aspects of this, however, is when dealing with a lot of code that you don't own, you can't easily go changing it to add print statements to debug. Sure, you can still debug that code with breakpoints, but if the code in question is complex (like my favorite pain-to-debug example: SAX parsers) breakpoints are sometimes not the right solution. Besides, some code (such as UI event code) may need to have errors reproduced without affecting the execution (such as typing 3 characters, right mouse clicking, and hitting tab all without losing focus to reproduce a null pointer exception). In those cases, it would be nice to get in there, and throw some print statements in to see when code is hit (and potentially to print out any variable values at the time of the breakpoint). This can be done by 'cheating the system' in Eclipse a little bit, and using conditional breakpoints.

Conditional breakpoints are a handy feature in Eclipse that allow you to supply a condition contextually relative to the code being executed so that the breakpoint only stops when that condition is met. They can be really useful, and in a lot of cases they can make debugging a lot less tedious. They don't really help with what I am describing here exactly (at least not directly), but it is important to understand them. To create a conditional breakpoint for this code:

public void someMethod(String argument) {   String a = getSomeValue();   String b = getSomeOtherValue(); // conditional breakpoint on this line  }  

... you add the breakpoint in your editor by either right clicking and adding it, or double clicking in the breakpoint gutter. Once installed, right click, select Properties for the breakpoint, and then enable a condition:


Read full article from Eclipse: Add Debug Statements to Code You Don't Own


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts