On Thu, 5 Oct 2023 17:46:13 +0200 Dan Horák <dan@xxxxxxxx> wrote: > On Thu, 5 Oct 2023 17:11:55 +0200 > Stephan Bergmann <sbergman@xxxxxxxxxx> wrote: > > > On 10/5/23 10:38, Dan Horák wrote: > > > I would appreciate any tips and tricks how to attack this problem with > > > gdb, because I wasn't successful in getting into the right place or > > > process and relied mainly on the old school "printf" method :-) > > > > The call > > > > > TwoFloats aOut = xLBT->echoTwoFloats(aIn); > > > > at testtools/source/bridgetest/bridgetest.cxx:474 goes to a dynamically > > created stub, generated at runtime by codeSnippet in > > bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx, which calls > > privateSnippetExecutor, which calls cpp_mediate, which (in its case > > typelib_TypeClass_INTERFACE_METHOD case's default case) calls > > cpp2uno_call, which at > > > > > // invoke uno dispatch call > > > (*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc ); > > > > calls into the binary UNO to Java bridge. So if you assume that things > > are fine between binary UNO and Java (which is a reasonable assumption, > > as that part should be mostly architecture-agnostic), I'd start to debug > > at the return of that pDispatcher call, and see how its return value > > (i.e., the return value from > > > > > public TwoFloats echoTwoFloats( TwoFloats i_Struct) throws com.sun.star.uno.RuntimeException { > > > return i_Struct; > > > } > > > > in testtools/com/sun/star/comp/bridge/TestComponent.java) propagates > > back down to the original C++ call at > > testtools/source/bridgetest/bridgetest.cxx:474. > > > > thanks and for the record, with https://fedora.danny.cz/ppc/bridge-debug.patch > I am getting https://fedora.danny.cz/ppc/bridge-debug.log after "make unitcheck" > under testtools/ > > You can see both the C++ and Java test running (IMO good for comparison) > and when the struct is translated from Java to UNO, it still looks good > (IMHO), search for "STRUCT top-level". Then the "f1" and "f2" prints from > right after https://git.libreoffice.org/core/+/refs/heads/master/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx#218 > they are bad. > > I will look further especially at the dynamically generated stubs, > which is new to me. Apply those stubs to the C++ bridge as well? rough guess, but we might be missing something like https://git.libreoffice.org/core/+/refs/heads/master/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx#352 Dan