PDA

View Full Version : EStackOverflow improvements


Adrien
12-Jan-2009, 04:17 PM
Hi,

Sometimes our application encouters a EStackOverflow exception. We use EL 6.0.16 and we got a valid bug report in our bugtracker. Nevertheless, I think that something really cool could be performed by EL to help tracking the source of the issue.

Currenly, EL seems only to keep the last X functions names in the Stack Trace pane (where X might be 100 or 200...). For any other exception that's a perfectly nice behaviour but in case of a stack overflow, that really does not help since the top of the stack might be full of recursive calls. While I really need to know which call in my application lead to the stack overflow, I can't, since the "bottom" of the stack has been lost.

For instance, in my case I've got the following stack trace (as XML) :

<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776C7D80" Module="ntdll.dll" Unit="" Class="" Procedure="RtlLeaveCriticalSection" Number="" Offset="" />
<Line Address="776C4CB8" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddressEx" Number="" Offset="" />
<Line Address="776C4F1C" Module="ntdll.dll" Unit="" Class="" Procedure="LdrGetProcedureAddress" Number="" Offset="" />
<Line Address="776D99F2" Module="ntdll.dll" Unit="" Class="" Procedure="KiUserExceptionDispatcher" Number="" Offset="" />
<Line Address="77839860" Module="msvcrt.dll" Unit="" Class="" Procedure="_sys_errlist" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="772A8652" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />
<Line Address="776D8C22" Module="ntdll.dll" Unit="" Class="" Procedure="NtQueryVirtualMemory" Number="" Offset="" />
<Line Address="772A8638" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8621" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQueryEx" Number="" Offset="" />
<Line Address="772A8662" Module="kernel32.dll" Unit="" Class="" Procedure="VirtualQuery" Number="" Offset="" />

Not very useful.

So, why not in case of a stack overflow exception always keep the first 50 (for instance) calls, then drops the "middle" of the stack, then keep the 50 last calls ? It could be an optional behaviour, but at least in my case I could use the stack to know which function in my application triggered the endless loop.

I hope I'm clear...

Regards,

A.R.

Unregistered
12-Jan-2009, 05:08 PM
Fabio, plz, see also http://blogs.msdn.com/oldnewthing/archive/2009/01/07/9286576.aspx

admin
15-Jan-2009, 10:04 AM
Hi to all,

thank you for the useful information.

I'll try to add this new feature in the next major version! :)