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.
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.