Is this supposed to be a highly-commented-on controversial topic, or one that helps people? :^)
I must admit, sheepishly, that I’ve always been too lazy to learn to use a debugger and still rely on printf or the equivalent. Often, determine that the bug is more than 100,000 iterations into a 1,000,000 iteration loop; do any debuggers provide breakpoints that only trigger after being passed through n times? A binary search through the loop iterations is a fairly quick thing to do with a test and printf.
“…most modern applications are web applications.”
Now you’re really just pandering for comments! Everyone knows most applications are embedded.
uccai_siravassays:
I find the rbreak command of the gdb useful for understanding how modules are used in large programs. Suppose that all functions exported by module A starts with A_xxx, then setting rbreak ^A_.* and running the program gives us a clue how the module A is used.
Yes, this is supposed to be an highly-commented-on controversial topic. I agree with your analysis regarding debuggers.
Regarding embedded applications versus web applications, do you really think there are more distinct embedded applications than web applications?
Is this supposed to be a highly-commented-on controversial topic, or one that helps people? :^)
I must admit, sheepishly, that I’ve always been too lazy to learn to use a debugger and still rely on printf or the equivalent. Often, determine that the bug is more than 100,000 iterations into a 1,000,000 iteration loop; do any debuggers provide breakpoints that only trigger after being passed through n times? A binary search through the loop iterations is a fairly quick thing to do with a test and printf.
“…most modern applications are web applications.”
Now you’re really just pandering for comments! Everyone knows most applications are embedded.
I find the rbreak command of the gdb useful for understanding how modules are used in large programs. Suppose that all functions exported by module A starts with A_xxx, then setting rbreak ^A_.* and running the program gives us a clue how the module A is used.