I can reproduce the problem even when using cmake as recommended.

The problem is proton's fast and loose use of binary data in the
codec.  The assumption that a struct will be placed on the stack a
certain way falls apart in 64bit Visual Studio, so that it is no
longer OK to use either a single argument (pn_data_t struct) or two
separate ones (a size_t and char*), depending on what's convenient at
the time.  The va_arg macro works very differently in 32bit versus
64bit in this case.

I will have a work-around patch soon and will separately work an
official fix through review board and PROTON-488

Cliff

On Thu, Jan 23, 2014 at 12:15 PM, Chuck Rolke (JIRA) <j...@apache.org> wrote:
>
>     [ 
> https://issues.apache.org/jira/browse/PROTON-488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13880309#comment-13880309
>  ]
>
> Chuck Rolke commented on PROTON-488:
> ------------------------------------
>
> I never let cmake decide which compiler to use. Even with the x64 Win64 
> Command Prompt cmake is building a 32-bit solution. Try forcing a 64-bit 
> solution with
>
>> cmake -G "Visual Studio 10 Win64" .
>
> Getting the correct solution generated by cmake makes changing properties 
> (steps 3-6) unnecessary.
>
>
>> Windows 7 64-bit VS2010 qpid-proton Crash on Startup with Send / Recv 
>> Application
>> ---------------------------------------------------------------------------------
>>
>>                 Key: PROTON-488
>>                 URL: https://issues.apache.org/jira/browse/PROTON-488
>>             Project: Qpid Proton
>>          Issue Type: Bug
>>          Components: proton-c
>>    Affects Versions: 0.6
>>         Environment: Windows 7 64-bit VS 2010
>>            Reporter: Frank Quinn
>>            Assignee: Cliff Jansen
>>            Priority: Critical
>>         Attachments: qpid-proton-win64-send-crash.png
>>
>>
>> Steps to recreate:
>> 1. Grab latest 0.6 tarball
>> 2. Start up Visual Studio x64 Win64 Command Prompt (2010) and run "cmake ." 
>> to generate the visual studio files
>> 3. Open Up the newly created Proton.sln in VS2010, right click on 
>> qpid-proton and add the path to python to executable directories
>> 4. In the configuration manager, select qpid-proton and select active 
>> configuration to be Debug, then select "Add" to add x64 support, copying 
>> win32 configuration in the process.
>> 5. Select qpid-proton properties and remove the hard coded /machine:X86 
>> extra command lines in Linker -> Command Line (MACHINE:X64 should already be 
>> in the command line above so no need to add here)
>> 6. Right click on qpid-proton and select build
>> Repeat steps 3-6 for send / recv applications. When you run recv, then run 
>> send, you'll get a crash with the (soon to be attached) trace.
>> Cheers,
>> Frank
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.1.5#6160)

Reply via email to