Ru-dolfs,
On 28.10.2014 14:38, Ru-dolfs Bundulis wrote:
Hi,

one more thing that I could find out in the sources but at this point if someone knows it would save time - are there any alignment constraints on the VRAM memory that is passed to the IFramebuffer object via the in octetPtr VRAM parameter? I would eventually need this memory to be 16-byte aligned but I already planned that I will have to do something about this, however if VirtualBox already gives some alignment guarantees it would be nice to know that I don't have to think about this.
Wondering what dead end you're moving yourself into... the VRAM attribute (and more, e.g. the usesGuestVRAM attribute is also affected) will be removed after VirtualBox 4.3, due to significant architectural changes, preparing for better separation between VMs and GUIs. This isn' finalized yet, but the direction is clear: keep implementation details out of the interface. On the other hand this information doesn't really help you much if you want a working solution with the currently released code.

I've checked: the VRAM attribute pointer is ultimately allocated by malloc() or calloc(), and this means that your 16-byte alignment assumption should be OK on relevant (i.e. 64 bit) CPUs and reasonably recent C library, because they need to be prepared to deal with native data types of this size.

Klaus

2014-10-28 13:30 GMT+02:00 Ru-dolfs Bundulis <[email protected] <mailto:[email protected]>>:

    Hi Klaus,

    thanks for the explanations, I'll try running the software under
    gdb to get more info - most likely it is my fault, simply with the
    current information from Visual Studio I've got zero hints. Thanks.

    2014-10-28 12:39 GMT+02:00 Klaus Espenlaub
    <[email protected] <mailto:[email protected]>>:

        Ru-dolfs,

        On 27.10.2014 <tel:27.10.2014> 22:39, Ru-dolfs Bundulis wrote:
        > Hi,
        >
        > my custom frontend for VirtualBox seemed to work fine and
        stable but
        > then I started to play around with number of CPU's and
        memory and I
        > started getting "An invalid or unaligned stack was
        encountered during an
        > unwind operation" from VBoxREM.dll. I downloaded the sources for
        > VirtualBox 4.3.18, built it for x64 debug and started debugging.
        >
        > * The first weird thing was that I could not find a .pdb
        file for
        > VBoxREM.dll, is that some kind of special .dll? I have pdb
        files for
        > VBoxC.dll and friends under
        "out\win.amd64\debug\stage\debug\bin" but I
        > can't find one for VBoxREM.dll.

        That's expected... VBoxREM.dll is very special, it contains
        the (qemu)
        recompiler, which must be built using gcc, and that's the
        reason why
        there are no pdb files for it. It should contain dwarf debug info
        straight in the dll, which gdb understands. Yes, it's annoying
        because
        one has to pick the right debugger straight from the beginning.

        > * The stack trace is (I know it won't give much help):
        >
        > ntdll.dll!00007ffe679ac0b4()Unknown
        > ntdll.dll!00007ffe67913356()Unknown
        > msvcrt.dll!__longjmp_internal ()Unknown
        >  >VBoxREM.dll!000000006fb0f3c4()Unknown
        >
        > The frontend does not have any output from VirtualBox on
        stdout or
        > stderr and the logfile also does not show any errors.
        >
        > Could anyone provide any pointers how should I approach
        debugging this?

        Hope gdb is helpful.

        On modern hardware which supports VT-x/AMD-V it's somewhat
        unexpected
        that you end up in the recompiler, but there are some corner
        cases which
        it is still used for.

        Klaus

        >
        > Best Regards,
        > Rudolfs Bundulis

_______________________________________________
vbox-dev mailing list
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev

Reply via email to