Thu Mar 28 13:42:02 2013: Request 84268 was acted upon.
Transaction: Ticket created by rkeuc...@allgeier.com
       Queue: Win32-API
     Subject: Win32::API: Bug/Exception in call_asm_x86_msvc.asm
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: rkeuc...@allgeier.com
      Status: new
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=84268 >


I get an exception in call_asm_x86_msvc.asm, raised at bad_esp.
ESP and EBP do not match.

Using the C version works. Why is the ASM-Version the default for MSVC?

I compiled a fresh perl for testing and debugging this.
The called DLL is also built with MSVC 16 and uses WINAPI calling convention.

The signature is:
Win32::API->Import("svapi32_vc100.dll",  'ULONG svapi_connect(LPVOID hsv,LPSTR 
s1,LPSTR s2,LPSTR s3,LPSTR s4,LPSTR s5,LPSTR s6,LPSTR s7,LPSTR s8,LPSTR s9, 
LPSTR s10)');


Compiler: Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 
for 80x86

Build Log:

                nmake -f Makefile all -nologo
                C:\perl\5.16.3\bin\perl.exe C:\Perl\5.16.3\lib\ExtUtils\xsubpp  
-typemap C:\perl\5.16.3\lib\ExtUtils\typemap  Callback.xs > Callback.xsc && 
C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e mv -- Callback.xsc Callback.c
                cl -c    -GS- -nologo -GF -W3 -Od -MD -Zi -DDEBUGGING -DWIN32 
-D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE 
-DPERL_TEXTMODE_SCRIPTS -DUSE_PERLIO -Od -MD -Zi -DDEBUGGING    
-DVERSION=\"0.76_01\"  -DXS_VERSION=\"0.76_01\"  "-IC:\perl\5.16.3\lib\CORE"   
Callback.c
Callback.c
Running Mkbootstrap for Win32::API::Callback ()
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e chmod -- 644 
Callback.bs
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Mksymlists  -e 
"Mksymlists('NAME'=>\"Win32::API::Callback\", 'DLBASE' => 'Callback', 
'DL_FUNCS' => {  }, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
                link -out:..\blib\arch\auto\Win32\API\Callback\Callback.dll 
-dll -nologo -nodefaultlib -debug  -libpath:"c:\perl\5.16.3\lib\CORE"  
-machine:x86 "/manifestdependency:type='Win32' 
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' 
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'" 
Callback.obj   C:\perl\5.16.3\lib\CORE\perl516.lib oldnames.lib kernel32.lib 
user32.lib gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.lib 
ole32.lib oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  
version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib -def:Callback.def
   Creating library ..\blib\arch\auto\Win32\API\Callback\Callback.lib and 
object ..\blib\arch\auto\Win32\API\Callback\Callback.exp
                if exist 
..\blib\arch\auto\Win32\API\Callback\Callback.dll.manifest mt -nologo -manifest 
..\blib\arch\auto\Win32\API\Callback\Callback.dll.manifest 
-outputresource:..\blib\arch\auto\Win32\API\Callback\Callback.dll;2
                if exist 
..\blib\arch\auto\Win32\API\Callback\Callback.dll.manifest del 
..\blib\arch\auto\Win32\API\Callback\Callback.dll.manifest
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e chmod -- 755 
..\blib\arch\auto\Win32\API\Callback\Callback.dll
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e cp -- 
Callback.bs ..\blib\arch\auto\Win32\API\Callback\Callback.bs
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e chmod -- 644 
..\blib\arch\auto\Win32\API\Callback\Callback.bs
                cd ..
                C:\perl\5.16.3\bin\perl.exe C:\Perl\5.16.3\lib\ExtUtils\xsubpp  
-nolinenumbers  -typemap C:\perl\5.16.3\lib\ExtUtils\typemap -typemap typemap  
API.xs > API.xsc && C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e mv -- 
API.xsc API.c
                cl -c    -GS- -nologo -GF -W3 -Od -MD -Zi -DDEBUGGING -DWIN32 
-D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE 
-DPERL_TEXTMODE_SCRIPTS -DUSE_PERLIO -Od -MD -Zi -DDEBUGGING    
-DVERSION=\"0.76_01\"  -DXS_VERSION=\"0.76_01\"  "-IC:\perl\5.16.3\lib\CORE"   
API.c
API.c
                ml -Zi -c call_asm_x86_msvc.asm
Assembling: call_asm_x86_msvc.asm
Running Mkbootstrap for Win32::API ()
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e chmod -- 644 
API.bs
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Mksymlists  -e 
"Mksymlists('NAME'=>\"Win32::API\", 'DLBASE' => 'API', 'DL_FUNCS' => {  }, 
'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
                link -out:blib\arch\auto\Win32\API\API.dll -dll -nologo 
-nodefaultlib -debug  -libpath:"c:\perl\5.16.3\lib\CORE"  -machine:x86 
"/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' 
version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' 
language='*'" API.obj call_asm_x86_msvc.obj   
C:\perl\5.16.3\lib\CORE\perl516.lib oldnames.lib kernel32.lib user32.lib 
gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib 
oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib 
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib -def:API.def
   Creating library blib\arch\auto\Win32\API\API.lib and object 
blib\arch\auto\Win32\API\API.exp
                if exist blib\arch\auto\Win32\API\API.dll.manifest mt -nologo 
-manifest blib\arch\auto\Win32\API\API.dll.manifest 
-outputresource:blib\arch\auto\Win32\API\API.dll;2
                if exist blib\arch\auto\Win32\API\API.dll.manifest del 
blib\arch\auto\Win32\API\API.dll.manifest
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e chmod -- 755 
blib\arch\auto\Win32\API\API.dll
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e cp -- API.bs 
blib\arch\auto\Win32\API\API.bs
                C:\perl\5.16.3\bin\perl.exe -MExtUtils::Command -e chmod -- 644 
blib\arch\auto\Win32\API\API.bs




Rainer Keuchel
Entwicklungsleiter
Enterprise Content Management
[cid:imageb271b8.JPG@f9d174aa.46bf0687]
Allgeier IT Solutions GmbH
Hans-Bredow-Str. 60
28307 Bremen

Tel: +49 (421) 43841294
Fax: +49 (421) 438419294
E-Mail: rkeuc...@allgeier.com
Internet: www.allgeier-it.de

ALLGEIER IT SOLUTIONS GmbH
Amtsgericht Bremen | HRB 25242
Geschäftsführer: Hubert Rohrer, Johannes Häringslack, Ralf Nitzgen
St.-Nr. 71/551/06446 | USt.-ID-Nr. DE114397847
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. 
Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten 
haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. 
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser E-Mail sind nicht 
gestattet.
This message (and any associated files) is intended only for the use of 
bug-win32-...@rt.cpan.org and may contain information that is confidential, 
subject to copyright or constitutes a trade secret. If you are not 
bug-win32-...@rt.cpan.org you are hereby notified that any dissemination, 
copying or distribution of this message, or files associated with this message, 
is strictly prohibited. If you have received this message in error, please 
notify us immediately by replying to the message and deleting it from your 
computer. Any views or opinions presented are solely those of the author 
rkeuc...@allgeier.com and do not necessarily represent those of the company.



<<inline: imageb271b8.JPG>>

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to