Re: How to make (ptr + len) > lim safe?



Ian Collins <ian-news@xxxxxxxxxxx> wrote:
William Ahern wrote:
Paul Hsieh <websnarf@xxxxxxxxx> wrote:
On Jan 18, 12:34 pm, William Ahern <will...@xxxxxxxxxxxxxxxxxxxxxxxxx>
<snip>
Point being, these checks are often times counter-productive. They hide
bugs. I don't want my bugs hidden. Rather, I want to find them as soon as
possible.
You want bugs to be found during *development time* not just as soon
as circumstances arise. Your compiler is unlikely to set a policy for
buffer overrun checking that is relevant to shipping, but instead is
focused for debugging.

I disagree. I want bugs found as soon as possible. And I always ship
compiled code with debugging symbols turned on. I won't budge on this. I'll
make the release engineer's life a living hell if I have to.

What benefit do you gain form this? Without some form of core file, how
can you track the bug? With a core file, you don't have to ship with
debugging symbols.

On some systems core files without debugging symbols are almost useless, and
using symbols improves the situation somewhat. Example, XFS on Linux 2.4
kernels that introduced some crazy bug with VM paging of executables (and
probably many other symptoms). Maybe I could have worked around it; I never
looked into it too much. There were other, arguably inexcusable,
circumstances as well, mostly beyond my control.

Also, often times I would never have access to a build with symbols from the
same or substantially same codebase.

But, point taken. Certainly if the environment was different this would have
been more feasible.


Now, poor developer is enlisted to fix the product. More than likely there's
more than 1 bug, and more than 1 bug which might possibly cause the
symptom(s). So, he investigates. Ah, bug! Fix. Give to customer. "Try this".
Customer thinks, "Speedy service, I like these people". A week or two
passes. Same thing happens. Calls back. "Its broken! I thought you guys
fixed this?"

Repeat, ad naseum.

Maybe that's why windows application have such a poor reputation?
There isn't an easy way (apart from those nagging feedback reporting
dialogue boxes) to send a detailed report back the base.

Now, if the darned progam had simply core dumped at the pointer dereference,
and debug symbols were turned on, then the chances of fixing this bug on the
first try are much, much beter. And even though most developers will
[rightly] cringe at the notion of asking poor customer for a core file, or
get their hands dirty, so to speak, at the end of the day the problem is
fixed.

How does the user make use of debugging symbols?

Point taken. I'm mixing up my experience at one shop with general [best]
practice.

.



Relevant Pages

  • Re: GlibC "fix" broke Evolution 1.4.6 on FC2
    ... should I have to trace a bug in someone else's code? ... (no debugging symbols found)......(no ... random memory corruption happening somewhere, ... if all the crashes were in g_module_open, ...
    (Fedora)
  • Re: How to make (ptr + len) > lim safe?
    ... Your compiler is unlikely to set a policy for ... compiled code with debugging symbols turned on. ... more than 1 bug, and more than 1 bug which might possibly cause the ... Customer thinks, "Speedy service, I like these people". ...
    (comp.lang.c)
  • Re: [Full-disclosure] Unzip *ALL* verisons ;))
    ... >> Just to add to the pot, this little bug has been there a long time, ... Any apps calling unzip? ... >> debugging symbols found)...done. ... "Quid quid Latine dictum sit, ...
    (Full-Disclosure)
  • Re: Problems with SUNWspro-Compiler
    ... This is the compiler crashing - not your program. ... is a bug in the compiler or in its installation. ... That would be a core file of the compiler itself. ...
    (comp.lang.fortran)
  • Re: Bug in latest IAR MSP430 compiler optimization???
    ... It has been assigned bug id EW20095, and it will be fixed in the ... The tests compiler companies do are quite extensive. ... register allocation when combined with post-incs and rollup. ... IAR use an industry standard test suite like this (that you don't ...
    (comp.arch.embedded)