Board index » cppbuilder » Can CodeGuard DLL Be Linked Into Exe?

Can CodeGuard DLL Be Linked Into Exe?


2004-02-04 01:48:49 PM
cppbuilder50
Can the dll for CodeGuard be linked right into the exe so that the CodeGuard code is
part of the exe file?
If so, how? Can one just add it to the Project Manager or does one need to generate
some sort of lib file to add to the Project Manager?
 
 

Re:Can CodeGuard DLL Be Linked Into Exe?

On Tue, 03 Feb 2004 21:48:49 -0800, Randall Parker wrote:
Quote
Can the dll for CodeGuard be linked right into the exe so that the CodeGuard code is
part of the exe file?
I don't think so. Why would you want to do that? Code Guard is a useful
debugging/developing tool but has no business in a distributed application.
It has a bad impact on performance and increases memory usage to the point
where we've had programs fall over because of the CG overhead.
If you're not confident enough about your code to release it without Code
Guard monitoring it perhaps you shouldn't be releasing it at all?
--
Andrue Cope
[Bicester UK]
 

Re:Can CodeGuard DLL Be Linked Into Exe?

Andrue,
I am looking for a watch to capture call trees when an exception is hit. I figure
CodeGuard can show the call tree to a run-time access violation.
As for an app not being ready for release: it is not possible to test all usage
scenarios. The apps are too complicated for that. Plus, the crashes could come in
third party or Borland libraries.
Andrue Cope wrote:
Quote
I don't think so. Why would you want to do that? Code Guard is a useful
debugging/developing tool but has no business in a distributed application.
It has a bad impact on performance and increases memory usage to the point
where we've had programs fall over because of the CG overhead.

If you're not confident enough about your code to release it without Code
Guard monitoring it perhaps you shouldn't be releasing it at all?
 

{smallsort}

Re:Can CodeGuard DLL Be Linked Into Exe?

"Randall Parker" < XXXX@XXXXX.COM >wrote
Quote

I am looking for a watch to capture call trees when an exception is hit. I
figure
CodeGuard can show the call tree to a run-time access violation.

Take look on ExceptionMagic tool, it does exactly that.
Its homepage is dead but it can be still downloaded and works with BCB.
/Pavel
 

Re:Can CodeGuard DLL Be Linked Into Exe?

On Wed, 04 Feb 2004 11:13:44 -0800, Randall Parker wrote:
Quote
As for an app not being ready for release: it is not possible to test all usage
scenarios. The apps are too complicated for that. Plus, the crashes could come in
third party or Borland libraries.
It is certainly possible to produce software that will run for a reasonable
amount of time without CG waking up. We do it all the time. Our standard
procedure is to develop in conjunction with CG. Nothing goes to QA without
having passed CG testing but nothing goes to QA with CG linked in.
Actually as noted later the boor bozos in-house use code that hasn't eve
been to QA. We call them beta testers. Or victims :)
Our software is used in data recovery - that means regularly dealing with
corrupt and downright misleading data. We get the occasional AV but they
are rare enough to prompt comment and consternation when they happen.
I'm curious what advantage you get from shipping with CG that outweighs the
disadvantages. Perhaps you've found something that we haven't - we're
always interested in improving our development techniques.
Crash protection? Not that we're aware of. CG only warns of an event it
doesn't stop the event happening.
Assistance in determining the cause of the crash? Not really. You can ship
debug information to improve the log file but that can be reconstructed
back at your desk anyway as long as you can reconstruct the original build.
If you can't reconstruct the original build the CG log file is useless.
Disadvantages:
stability. We have learnt never to use CG to monitor long complex
processes. A process that will run for a week without CG and give no
indication of problems will often fall over after a day if CG is linked in.
Performance. This is a total turn-off to using CG in release code. Our
processes tend to be non-user intensive. You start them and they run as
fast as the hardware allows. CG is a massive performance hit. Processes
typically run ten to twenty times slower.
For in-house we just re-run the process with the latest development
version. That either lets us debug the problem or verifies it as fixed. We
do that because results are what count in-house and we don't mind using
code that is hot off the press :)
For external customers we don't do that (we prefer to update them only
occasionally and not subject them to bleeding-edge code). What we do there
is maintain a separate source stream on an isolated machine. We can then
locate the problem and generate a patch. That machine /does/ run CG and to
my knowledge we've never had a situation where the fact it was running CG
meant it behaved differently to the the release code.
But I guess it's horses for courses. It doesn't look like Borland intended
people to release with CG if they didn't provide a LIB but I'm pretty sure
the license allows you to do that.
--
Andrue Cope
[Bicester UK]
 

Re:Can CodeGuard DLL Be Linked Into Exe?

Pavel,
I'd like to try ExceptionMagic in my CB5 app. I've downloaded it but in
the absence of an example of it's (CPP) use, I'm a little stuck at
trying to include it and get it working.
Any chance of a few lines of example code (for example, how to
instantiate the hook in the main project file)???
TIA.
Colin
Pavel Vozenilek wrote:
Quote

Take look on ExceptionMagic tool, it does exactly that.

Its homepage is dead but it can be still downloaded and works with BCB.

/Pavel