[MinGW-Notify] [mingw] #39268: g++ -O1 produces crashing code when accessing dlls via LoadLibrary()/GetProcAddress()/reinterpret_cast

Back to archive index
MinGW Notification List mingw****@lists*****
Fri May 31 03:17:22 JST 2019


#39268: g++ -O1 produces crashing code when accessing dlls via LoadLibrary()/GetProcAddress()/reinterpret_cast

  Open Date: 2019-05-30 18:26
Last Update: 2019-05-30 19:17

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/39268
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=39268

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2019-05-30 19:17 Updated by: keith

Comment:

Reply To comer352l

    Tested operating Systems: Windows 7 64bit, Windows XP 32bit
    Tested MinGW versions:
    MinGW/gcc 4.8.2 (i686-posix-dwarf-rev3, Built by MinGW-W64 project)
    MinGW/gcc 7.3.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)

Products from the MinGW-W64 project — a project which gratuitously (and
illegally) infringes our registered trademark — do not originate, and are not
supported here. Notwithstanding, if you can provide a self-contained test case,
I'd be interested to see if the same problem is reproduced with our official
MinGW compiler suite.

Do please note that your c0000005 exception code is a SEGFAULT, ("access
violation" in Microsoft parlance). This means that your program is attempting
to access memory to which it does not have access rights. Likely causes are
references to an uninitialized pointer, or to memory which has already been
deallocated; usually these are the result of errors in the user program code,
but unless you do provide a fully self-contained test case, I am not willing to
investigate further.



---------------------------------------------------------------------
Ticket Status:

      Reporter: comer352l
         Owner: (None)
          Type: Issues
        Status: Open
      Priority: 5 - Medium
     MileStone: (None)
     Component: (None)
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

I'm investigating the following crash, which occurs when accessing a dll via
LoadLibrary(), getProcAddress(), reinterpret_cast:

Problem signature:

Problem Event Name: BEX
Application Name: test.exe
...
Fault Module Name: StackHash_0a9e
...
Exception Offset: 0028fe9c
Exception Code: c0000005
Exception Data: badc0de1
...
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789



The code only crashes if it is compiled with -O1 (-O2, ...).
Moving around pieces of the code seems to fix the issue.
I was finally able to create some reduced example code with working / non
working variants (attachment follows).



-- 
Ticket information of MinGW - Minimalist GNU for Windows project
MinGW - Minimalist GNU for Windows Project is hosted on OSDN

Project URL: https://osdn.net/projects/mingw/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/mingw/ticket/39268
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=39268



More information about the MinGW-Notify mailing list
Back to archive index