On Thu 29 Aug 2013 13:57:51 NZST +1200, Derek Smithies wrote:

> The source code I have, and I can compile it just fine. I then
> release it to commercial
> customers who use it. One customer has found a method of crashing it.
> 
> Where was the crash - and what caused it?
> 
> Well, I simply cannot give him a debug version of the executable to run.

Perfect, ask for a crash dump (those infamous *ix core files), and make
sure to tell customer to change shell process limits (coredumpsize etc)
first so it's not truncated.

You then load this core dump with your -g compiled version and will be
taken straight to the black hole.

It works because both binaries are exactly identical - the additional
symbol and debugging information is in different segments of the
executable. 

> As I stated below, it is possible that the debug version will not crash.

What do you mean by debug version? If it's got additional test etc code
in it, then yes, so you make sure you recompile your version exactly the
same as the customer's, except you add -g and whatever else you need to
control the behaviour of -g. Your debug version is then
instruction-identical.

That's the "where" problem solved, the cause should then be not too far
away.

Btw the same method is used on Linux distros. The binaries are stripped
to reduce installed size (by a very significant amount). The debug info
is in a separate package with "-debuginfo" added to the name. If I have
a crash, a popup asks me whether to report it - yes, but the backtrace
is useless because it has no symbols, but would I like to install the
missing debug packages - yes, ok, submit bug report. All a few mouse
clicks. Doesn't debian do that too?

Volker

-- 
Volker Kuhlmann
http://volker.dnsalias.net/     Please do not CC list postings to me.
_______________________________________________
Linux-users mailing list
[email protected]
http://lists.canterbury.ac.nz/mailman/listinfo/linux-users

Reply via email to