Eo: Print location of the calling functions in eo log output
authorDaniel Willmann <d.willmann@samsung.com>
Wed, 17 Apr 2013 14:08:12 +0000 (15:08 +0100)
committerDaniel Willmann <d.willmann@samsung.com>
Wed, 17 Apr 2013 14:56:45 +0000 (15:56 +0100)
commit8a19bb4b29ce0500e1da8ffcbb9c1ce030d9a0c0
treec7341f53c591878584ca945309de4d68d237e44e
parentf58ffeb7be86bf9aea275d943c0b840a32c9df26
Eo: Print location of the calling functions in eo log output

Because of the way eo is dispatching method calls of objects the usual
error log you get if you mix up objects or try to call non-existent
methods is:

ERR<12404>:eo lib/eo/eo.c:362 _eo_dov_internal() Can't find func for op
0x24 (ecore_audio_obj_in:ECORE_AUDIO_OBJ_IN_SUB_ID_SPEED_GET) for class
'ecore_audio_obj_out_pulse'. Aborting.

Of course the problem is not really in lib/eo/eo.c, but in the function
calling eo_do()

Now the macros pass source file and line number on to the _internal
functions so we can log where the error originally happened:

ERR<1938>:eo lib/eo/eo.c:362 _eo_dov_internal() in
lib/ecore_audio/ecore_audio_obj_out_pulse.c:119: Can't find func for op
0x24 (ecore_audio_obj_in:ECORE_AUDIO_OBJ_IN_SUB_ID_SPEED_GET) for class
'ecore_audio_obj_out_pulse'. Aborting.

This makes debugging with eo a lot easier.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
src/lib/eo/Eo.h
src/lib/eo/eo.c