Am 18.03.2009 um 17:10 schrieb Marcel Selhorst:
Hi l4-hackers,
Hi Marcel.
I am currently having some issues with dice-3.3:
First of all, the dice-generated code differs in header- and client file, meaning that the header defines functions with
int DICE_CV somefunction()
while the outcoming c-file is
int somefunction()
This leads to compile errors due to conflicting declarations...
But as soon as you remove DICE_CV, everything compiles fine.
It seems that some compilers are indeed not very happy about this. We are looking into it. For the time being please use your workaround (or maybe modify your compiler flags, if you pass additional warning- related flags).
Other comments regarding your IPC problem are below.
The second problem I have regards IPC-calls: [...] == static l4_threadid_t threadId; static CORBA_Environment env;
This is wrong. Please use the DICE_DECLARE_ENV macro to declare and properly initialize the CORBA environment:
DICE_DECLARE_ENV(env);
[...] The native client (started via bmodfs) receives a pagefault, cause it is trying to write?! to address 0: == dummytest| Dummy found with threadId: 11a0001 dummytest| L4RM: [PF] write at 0x00000000, ip 02000272, src 11.02 dummytest| [11.0] l4rm/lib/src/pagefault.c:81:__unknown_pf(): dummytest| unhandled page fault
--PANIC, 'g' for exit------------------------------------IP: 02005755 [dummy.rm] (11.00) jdb: ==
And the L4Linux-client crashes with a segfault:
== dummy_t[42]: segfault at 2 ip 08048312 sp bf4092ec error 6 in dummy_test[8048000+76000] ==
The kernel debugger is very useful to find out where exactly the program crashes. btt11.2 gives you the backtrace for thread 11.2.
The strange thing is: If I compile the idl-file with dice-3.2.1, the dummy example works, BUT as soon as my interfaces get more complex, e.g., something like this:
int write ([in] long start, [in] long offset, [in] long bytes_to_write, [in, size_is(write_len), max_is(MAX_PAGE_SIZE)] char *write_buffer, [out] long *write_len);
IPC crashes with pagefaults / segfaults again even with dice-3.2.1...
Maybe my hint from above fixes this, too. If not, more information is required (complete logs, backtraces, ...).
[...] Thanks in advance and best regards,
I hope this helps.
Carsten