How do you enable the 64-bit version of CppEngineHost.exe in Preview 2?

Sysprogs forums Forums VisualGDB How do you enable the 64-bit version of CppEngineHost.exe in Preview 2?

Viewing 15 posts - 16 through 30 (of 40 total)
  • Author
    Posts
  • #11764
    Ophidian14
    Participant

    The problem is that with this build, the performance collapses and I can’t reproduce anything because the parse never finishes.  I saw this just now after killing CppEngineHost in Task Manager after I came back from lunch.  Any other ideas?

    [+1:36:16.708] Operation completed: Reparsing \\10.10.161.129\xxx\yyy\Main.cpp [4912406 msec]
    [+1:36:16.707]        at System.Runtime.Remoting.Channels.SocketHandler.ReadAndMatchFourBytes(Byte[] buffer)
    [+1:36:16.707]        at System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadAndMatchPreamble()
    [+1:36:16.707]        at System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadVersionAndOperation(UInt16& operation)
    [+1:36:16.707]        at System.Runtime.Remoting.Channels.Ipc.IpcClientHandler.ReadHeaders()
    [.....]

     

    #11772
    support
    Keymaster

    Hi,

    You can upload the dump to our FTP (please create a support ticket to get a temporary FTP login/password).

    #11776
    Ophidian14
    Participant

    Okay but did you see my earlier post about how the 5.3 debug build basically just runs forever and never completes.  I can’t get any crash dumps from it.

    #11777
    support
    Keymaster

    Hi,

    The debug build is extremely slow (up to 100x slower than release) due to large amount of internal checks and no optimization. So if the problem is 100% reproducible, please consider leaving it overnight until you get a reliable crash. If not, the only other option would be to reduce the bug to a smaller non-confidential project that you could share with us so that we could run the debug build on our side.

    #11837
    Ophidian14
    Participant

    I found a small enough file that the decode will finish with the Debug build.  Unfortunately it doesn’t reproduce with the Debug build.  I open the file with the Release version of CppEngineHost64.dll and I get the crash window within one second.  If I close Visual Studio, swap out to the Debug CppEngineHost64.dll and open that same file, I get about a 3-4 second pause and then the parse completes (I can tell because the syntax highlighting changes in a subtle way, and the Diagnostic window says so).

    I got another crash dump that basically says in WinDbg:

    BUGCHECK_STR:  STACK_BUFFER_OVERRUN_STACK_BUFFER_OVERRUN_NOSOS_MISSING_GSFRAME
    
    DEFAULT_BUCKET_ID:  STACK_BUFFER_OVERRUN_STACK_BUFFER_OVERRUN_NOSOS_MISSING_GSFRAME
    
    PRIMARY_PROBLEM_CLASS:  STACK_BUFFER_OVERRUN
    
    IP_ON_HEAP:  3a74736f6f62202c
    The fault address in not in any loaded module, please check your build's rebase
    log at <releasedir>\bin\build_logs\timebuild\ntrebase.log for module which may
    contain the address if it were loaded.
    
    FRAME_ONE_INVALID: 1
    
    LAST_CONTROL_TRANSFER:  from 3a74736f6f62202c to 000007feb9539a54
    
    STACK_TEXT:  
    000000001d2ad010 3a74736f6f62202c : 3a6c69617465643a 746e61697261763a 2c5f64696f763a3a 3a3a74736f6f6220 : CppEngineCore64!LookupGlobalName+0x23e24

     

     

    Now, below this is a bunch of hex output that basically looked like ASCII text to me so I decoded it.  I got this:

    deta il::  boo st:: ::vo'id_, :var'iant
    vari ant: deta il::  boo'st:: ::vo'id_,
    :voi d_,  vari ant: deta'il::  boo'st::
    boos t::d :voi d_,  vari'ant: deta'il::
    etai l::v boos t::d :voi'd_,  vari'ant:
    aria nt:: etai l::v boos't::d :voi'd_,
    void _, b aria nt:: etai'l::v boos't::d
    oost ::de void _, b aria'nt:: etai'l::v
    tail ::va oost ::de void'_, b aria'nt::
    rian t::v tail ::va oost'::de void'_, b
    oid_ , bo rian t::v tail'::va oost'::de
    ost: :det oid_ , bo rian't::v tail'::va
    ail: :var ost: :det oid_', bo rian't::v
    iant ::vo ail: :var ost:':det oid_', bo
    id_,  boo iant ::vo ail:':var ost:':det
    st:: deta id_,  boo iant'::vo ail:':var
    il:: vari st:: deta id_,' boo iant'::vo
    ant: :voi il:: vari st::'deta id_,' boo
    d_,  boos ant: :voi il::'vari st::'deta
    t::d etai d_,  boos ant:':voi il::'vari
    l::v aria t::d etai d_, 'boos ant:':voi
    nt:: void l::v aria t::d'etai d_, 'boos
    _, b oost nt:: void l::v'aria t::d'etai
    ::de tail _, b oost nt::'void l::v'aria
    ::va rian ::de tail _, b'oost nt::'void
    t::v oid_ ::va rian ::de'tail _, b'oost
    , bo ost: t::v oid_ ::va'rian ::de'tail
    :det ail: , bo ost: t::v'oid_ ::va'rian
    :var iant :det ail: , bo'ost: t::v'oid_
    ::vo id_> :var iant :det'ail: , bo'ost:
     >,  std: ::vo id_> :var'iant :det'ail:
    :all ocat  >,  std: ::vo'id_> :var'iant
    or<s td:: :all ocat  >, 'std: ::vo'id_>
    pair <std or<s td:: :all'ocat  >, 'std:
    ::st ring pair <std or<s'td:: :all'ocat
    , bo ost: ::st ring pair'<std or<s'td::
    :var iant , bo ost: ::st'ring pair'<std
    <int , do :var iant , bo'ost: ::st'ring
    uble , bo <int , do :var'iant , bo'ost:
    ol,  std: uble , bo <int', do :var'iant
    :str ing, ol,  std: uble', bo <int', do
     boo st:: :str ing, ol, 'std: uble', bo
    deta il::  boo st:: :str'ing, ol, 'std:
    vari ant: deta il::  boo'st:: :str'ing,
    :voi d_,  vari ant: deta'il::  boo'st::
    boos t::d :voi d_,  vari'ant: deta'il::
    etai l::v boos t::d :voi'd_,  vari'ant:
    aria nt:: etai l::v boos't::d :voi'd_,
    void _, b aria nt:: etai'l::v boos't::d
    oost ::de void _, b aria'nt:: etai'l::v
    tail ::va oost ::de void'_, b aria'nt::
    rian t::v tail ::va oost'::de void'_, b
    oid_ , bo rian t::v tail'::va oost'::de
    ost: :det oid_ , bo rian't::v tail'::va
    ail: :var ost: :det oid_', bo rian't::v
    iant ::vo ail: :var ost:':det oid_', bo
    id_,  boo iant ::vo ail:':var ost:':det
    st:: deta id_,  boo iant'::vo ail:':var
    il:: vari st:: deta id_,' boo iant'::vo
    ant: :voi il:: vari st::'deta id_,' boo
    d_,  boos ant: :voi il::'vari st::'deta
    t::d etai d_,  boos ant:':voi il::'vari
    l::v aria t::d etai d_, 'boos ant:':voi
    nt:: void l::v aria t::d'etai d_, 'boos
    _, b oost nt:: void l::v'aria t::d'etai
    ::de tail _, b oost nt::'void l::v'aria
    ::va rian ::de tail _, b'oost nt::'void
    t::v oid_ ::va rian ::de'tail _, b'oost
    , bo ost: t::v oid_ ::va'rian ::de'tail
    :det ail: , bo ost: t::v'oid_ ::va'rian
    :var iant :det ail: , bo'ost: t::v'oid_
    ::vo id_, :var iant :det'ail: , bo'ost:
     boo st:: ::vo id_, :var'iant :det'ail:
    deta il::  boo st:: ::vo'id_, :var'iant
    vari ant: deta il::  boo'st:: ::vo'id_,
    :voi d_,  vari ant: deta'il::  boo'st::
    boos t::d :voi d_,  vari'ant: deta'il::
    etai l::v boos t::d :voi'd_,  vari'ant:
    aria nt:: etai l::v boos't::d :voi'd_,
    void _, b aria nt:: etai'l::v boos't::d
    oost ::de void _, b aria'nt:: etai'l::v
    tail ::va oost ::de void'_, b aria'nt::
    rian t::v tail ::va oost'::de void'_, b
    oid_ , bo rian t::v tail'::va oost'::de
    ost: :det oid_ , bo rian't::v tail'::va
    ail: :var ost: :det oid_', bo rian't::v
    iant ::vo ail: :var ost:':det oid_', bo
    id_,  boo iant ::vo ail:':var ost:':det
    st:: deta id_,  boo iant'::vo ail:':var
    il:: vari st:: deta id_,' boo iant'::vo
    ant: :voi il:: vari st::'deta id_,' boo

     

    Any ideas?

     

     

     

    #11843
    support
    Keymaster

    OK, we would need to run a few tests of this on our side.

    Would you be able to detach the problem from any confidential code and send it to us? E.g. preprocess the file to a single source file, confirm that the problem still happens when opening it and then start removing the parts of the file until you pinpoint the exact declaration that causes this. Using binary search, this should take only a few iterations.

    #11849
    Ophidian14
    Participant

    I’m trying.  I’m almost certain it has to do with our usage of boost::variant (and boost::make_recursive_variant), and I’ve made several reduced test programs with boost::variant, but they don’t trigger the issue.  I’ll keep looking at it.

    #12035
    Ophidian14
    Participant

    I am using Preview 5 and the crash seems to be gone.  Also, the performance seems faster as well.

    #12038
    support
    Keymaster

    Thanks for sharing this, good to know it works.

    #12060
    Ophidian14
    Participant

    Okay, hold on a second here.  I had to recreate my project file (for other reasons), and realized I was back on the 32-bit CppEngineHost.  I went back to turn it back on, and the setting you mentioned (in C++ Text Editor -> Other) was no longer visible?

    Then I downloaded build 1716 from the link you gave that other guy, and now the setting is back again *and* it’s enabled??

    Also when I downloaded the “official” Preview 5 it said “5.2 r9”, is that right?

    The crash is still gone though, luckily, in the 64 bit version (FWIW).

    #12061
    Ophidian14
    Participant

    Also amidst all of this I deleted my AppData VisualGDB folder contents, if that matters.

    #12062
    Ophidian14
    Participant

    No!!  The crash remains on both the 32-bit and 64-bit versions!!  I had to type an arrow-> operator to get it to happen, but it’s there.

    #12063
    Ophidian14
    Participant

    Sorry to spam the forum but I realized the “Download” link on the main page gives you 5.2r9 (which doesn’t seem to have the crash) and 5.3 preview 5 comes from the “try it now link”.

    #12064
    Ophidian14
    Participant

    Which I think is what happened, I accidentally downgraded to 5.2r9, thus I didn’t see the issue any more (or the option to go 64-bit).  It’s definitely still present in 5.3.

    #12065
    Ophidian14
    Participant

    I submitted a minidump per the “normal” process if that helps.

Viewing 15 posts - 16 through 30 (of 40 total)
  • You must be logged in to reply to this topic.