How to get a full call stack in a Delphi server application

I have multi-level software, which is two applications (GUI, DataSnap Server). In my server application DataSnap, the cause of the EAccessViolation error occurs several times. such as:

Exception EAccessViolation in module unidac160.bpl at 00010CB1. Access Violation at 002B77832 in module unidac160.bpl. Read of address 0000000C 

I want to get a full call stack and write it to a file. I also use eurekalog, but it is only effective for the gui application.

+7
source share
4 answers

EurekaLog is extremely effective for all applications. Just configure it so that it logs exceptions in the file and does not display any description dialogs at all.

+9
source

Our open-source logging classes have an exception catcher with a full call stack, including lines of source code.

Debugging information is highly compressed (better than zip or any other formats), optionally in exe.

Open Source works with Delphi 5 to XE2.

In its latest version (use one of the source code repositories - that is, currently 1.16), it is also able to register exceptions in libraries (i.e. inside .dll or .bpl), as your request explicitly indicates.

There are other features, such as client-side profiling, that can help your customer support and improve applications with real data (not only in test benches).

+7
source

You can also use MadExcept to get the stack for your application. Here you have a similar madExcept question , getting the top of the current stack

In addition, related to your question, this can also help you.

Display call stack in Delphi Win32 application

+4
source

I used MemCheck before rendering call stacks, but I'm not sure if it still works with the latest Delphi versions.

0
source

All Articles