-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
drmingw-0.6.2-win32 - giving no useful report on memory overrun #1
Comments
Does passing |
|
GCC probably inlines run_test_func(). Please use the following flags to get correct stack trace: Works on GCC 4.8.2. |
|
Yes, it's possible that If you haven't already, make sure you have create a system wide environment variable named
as documented in http://msdn.microsoft.com/en-us/library/windows/desktop/ms680689.aspx. This will enable |
_NT_SYMBOL_PATH=srv_c:\Symbols_http://msdl.microsoft.com/download/symbolsIs this the form that
|
I've checked, and it's not enough to set _NT_SYMBOL_PATH. It's also necessary to have a few DLLs. Please re-try with the binaries from https://github.com/jrfonseca/drmingw/releases/tag/0.6.3 |
|
Great! I have Microsoft Debugging tools on my PATH, which is probably why I couldn't repro this originally.
Adding
|
|
No, it wouldn't be too hard to had, but it doesn't work like that ATM. Try http://www.codersnotes.com/sleepy . It recently added mingw support. |
|
I had reported this issue before, but now I have a small sample program which demonstrates the problem. I compiled and ran the following program, which has a data overrun:
//**********************************************************************
// Demo program for bug in drmingw
//
// drmingw version: drmingw-0.6.2-win32
// toolchain version: g++ (4.3.3-tdm-1 mingw32) 4.3.3
// build: g++ -Wall -O -ggdb drmingw_test.cpp -o drmingw_test.exe
//**********************************************************************
include <windows.h>
include <stdio.h>
//***************************************************
static void run_test_func(void)
{
unsigned int usernum = 0x72925 ;
printf("[%s] command faulted\n", usernum) ;
}
//***************************************************
int main(void)
{
run_test_func() ;
return 0;
}
//**********************************************************************
When I ran the program, it crashed (as it should), and this is what drmingw displayed:
drmingw_test.exe caused an Access Violation at location 7c34fedc in module msvcr71.dll Reading from location 00072925.
Registers:
eax=00072925 ebx=7efde073 ecx=7ffffffe edx=0042d838 esi=0028fc94 edi=00403027
eip=7c34fedc esp=0028fc54 ebp=0028fce0 iopl=0 nv up ei pl nz na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202
Call stack:
7C34FEDC msvcr71.dll:7C34FEDC setvbuf
//******************************************************************
This is not a very useful report, though... drmingw used to actually report the line in my code where the error occurred, but at some point it stopped doing so. It may have been when I upgraded from g++ v3.4.5 to V4.3.3, though I'm not sure.
Is there some way to improve its reporting for these bugs??
The text was updated successfully, but these errors were encountered: