Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^9: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location

by syphilis (Canon)
on Dec 05, 2012 at 11:27 UTC ( #1007270=note: print w/ replies, xml ) Need Help??


in reply to Re^8: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location
in thread if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location

"dumpbin mydll.dll" will show section names and sizes

I have 2 builds of PLplot.dll - both are the same size (3,327,028 bytes). I have named one of them PLplot_broken.dll, and the other PLplot_ok.dll. They can be obtained from:

http://www.sisyphusion.tk/junk/PLplot_broken.dll and http://www.sisyphusion.tk/junk/PLplot_ok.dll
Both were built using the same compiler, and against the same plplot static library.
Running 'dumpbin PLplot_broken.dll' and 'dumpbin PLplot_ok.dll produces identical results (except of course, for the file name that is reported):
Microsoft (R) COFF/PE Dumper Version 7.00.9466 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file PLplot_ok.dll File Type: DLL Summary 1000 .CRT B000 .bss 6000 .data 1000 .debug_abbrev 1000 .debug_aranges B3000 .debug_info 1B000 .debug_line 92000 .debug_loc A000 .debug_ranges 2000 .debug_str C000 .edata 16000 .eh_frame 2000 .idata 16000 .rdata 4E000 .reloc 10E000 .text 1000 .tls
If I use PLplot_ok.dll as the PLplot.dll I get:
C:\>pmver PDL::Graphics::PLplot 0.61
If I use PLplot_broken.dll as the PLplot.dll I get:
C:\>pmver PDL::Graphics::PLplot Can't load 'C:/MinGW/perl589/site/lib/auto/PDL/Graphics/PLplot/PLplot. +dll' for module PDL::Graphics::PLplot: load_file:%1 is not a valid Wi +n32 application at C:/MinGW/perl589/lib/DynaLoader.pm line 226. at -e line 1 Compilation failed in require at -e line 1.
Any advice on how I might be able to come to an understanding of why one is ok, but the other not, would be most welcome.

Cheers,
Rob


Comment on Re^9: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location
Select or Download Code
Re^10: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location
by Anonymous Monk on Dec 05, 2012 at 14:34 UTC
Re^10: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location
by bulk88 (Priest) on Dec 05, 2012 at 19:01 UTC
    sections /29, /59, and .reloc are different sizes. .text is identical size. The instructions in .text I am pretty sure (didn't look too deeply, using my tools) are identical except for the effects of relocation. The 2 DLLs have different base addresses, and both are i386 and have identical PE headers except for the relocation. Where can I get a copy of libgcc_s_dw2-1.dll? Strawberry perl 5.8.9.5 doesn't have one.

    *Both* files gave me this warning when I used PE Explorer on them.

    " Warning! Section </4> (3) extends beyond the raw file offset of section <.bss> (4)."
      Where can I get a copy of libgcc_s_dw2-1.dll?

      I've just uploaded it to here.
      It's a dll that ships with the mingw.org builds of 32-bit gcc. Strawberry's compilers are built by a different vendor.

      Thanks for taking a look.

      Cheers,
      Rob
        Both ok and broken loaded correctly without error. Win32::LoadLibrary returns a handle for both and reading that handle as a mem block, the first 2 letters were MZ (dll/exe magic). Can not reproduce.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1007270]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (15)
As of 2014-08-21 19:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (142 votes), past polls