On 14 March 2017 at 21:19, Gustavo Sverzut Barbieri <[email protected]> wrote:
> On Tue, Mar 14, 2017 at 2:16 AM, Jean-Philippe ANDRÉ <[email protected]> > wrote: > > jpeg pushed a commit to branch master. > > > > http://git.enlightenment.org/core/efl.git/commit/?id= > 5f3515542b57fcc97d848f4aae7804711e0b485a > > > > commit 5f3515542b57fcc97d848f4aae7804711e0b485a > > Author: Jean-Philippe Andre <[email protected]> > > Date: Mon Mar 13 19:18:02 2017 +0900 > > > > evas: Add more debug info to an ERR message (stack) > > > > Also use eina_safety as those are safety checks. Helps with GDB > > (single breakpoint in eina_safety). > > --- > > src/lib/evas/canvas/evas_stack.c | 40 ++++++++++++++++++++++++++++++ > ++++------ > > 1 file changed, 34 insertions(+), 6 deletions(-) > > > > diff --git a/src/lib/evas/canvas/evas_stack.c > b/src/lib/evas/canvas/evas_stack.c > > index 55a46b0..7cd8509 100644 > > --- a/src/lib/evas/canvas/evas_stack.c > > +++ b/src/lib/evas/canvas/evas_stack.c > > @@ -142,6 +142,8 @@ evas_object_stack_above(Evas_Object *obj, > Evas_Object *above) > > efl_gfx_stack_above((Evas_Object *)obj, above); > > } > > > > +#define SERR(x, ...) EINA_SAFETY_ERROR(eina_slstr_printf(x, > __VA_ARGS__)) > > + > > EOLIAN void > > _efl_canvas_object_efl_gfx_stack_stack_above(Eo *eo_obj, > Evas_Object_Protected_Data *obj, Efl_Gfx_Stack *eo_above) > > { > > @@ -162,7 +164,11 @@ _efl_canvas_object_efl_gfx_stack_stack_above(Eo > *eo_obj, Evas_Object_Protected_D > > { > > if (obj->smart.parent != above->smart.parent) > > { > > - ERR("COMPLAIN! evas_object_stack_above(), %p not inside > same smart as %p!", eo_obj, eo_above); > > + SERR("Invalid operation: object '%s' %p (parent: '%s' %p) > not " > > + "inside same smart parent as above '%s' %p (parent > '%s' %p)!", > > + efl_class_name_get(eo_obj), eo_obj, > efl_class_name_get(obj->smart.parent), > > + obj->smart.parent, efl_class_name_get(eo_above), > eo_above, > > + efl_class_name_get(above->smart.parent), > above->smart.parent); > > return; > > nice idea, but I'd rather add new EINA_SAFETY_ERROR_MESSAGE() or > something like that which takes the printf()-like parameters and do > not need the eina_slstr_printf() hack, or per-file definition of that > hack. > > an alternative is to use CRITICAL log, that gets the backtrace by > default AFAIR, there is a setting in eina_log.c which can be > overridden from envvars. > Me too... But I don't want to add anything to Eina.h before the release :) ERR() should also show a backtrace by default when compiled in release mode (I believe). -- Jean-Philippe André ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
