Gustavo,

Your suggestion is good (I already told you that in the past, I think), but
I believe it's unrelated to what we are trying to achieve here. What I want
is an easy way to step into an eo_do function, just like we would have done
with any other function.

What I really want to see is just "run until you exit the libeo.so binary
and get back to a user function"...


On Wed, Dec 5, 2012 at 3:05 PM, Gustavo Sverzut Barbieri <
barbi...@profusion.mobi> wrote:

> Let me jump in, proposing here what I already proposed earlier at IRC
> and in person during LinuxCon-EU:
>
> we should use the same debug helper way as gcc does for itself.
>
> GCC is built on top of an union of every possible AST node. So
> functions, variables, loops... are all into the same type/union,
> making it dozen pages of gdb output to get every possible field and
> combination if you "p *node"
>
> To solve this they ship some  functions in their own code, that you
> can use to debug its own code. Similar to "p gcc_node_print(node)" (I
> don't recall the exact name), and another to navigate the tree.
>
> Then I propose we create a "eo_do_step(obj, va_list ap)" that we can:
> "(gdb) p eo_do_step(obj, ap)" from our debug session. It would
> replicate the dispatch logic from eo_do(), but before executing each
> call it would print out the call and parameters. We can use Eo
> introspection to try to help user by showing the function name,
> description and parameter types.
>
> Suppose doing: eo_do(evas_obj, evas_obj_position_set(10, 20),
> evas_obj_size_set(300, 400));
> you break point in eo_do and call:
>
> (gdb) p eo_do_step(obj, ap)
> Operating on: obj=0xaabbcc00 (Evas_Object_Rectangle)
> Function: evas_obj_position_set(int x, int y) "Set the position of an
> evas object."
> calling: evas_obj_position_set(x=10, y=20)
> (eo_do_step)  <--- waits for commands such as continue, step...
>
>
>
>
> On Wed, Dec 5, 2012 at 12:46 PM, daniel.za...@samsung.com
> <daniel.za...@samsung.com> wrote:
> > Hi all,
> >
> > I don't need to reply, but to thank you and give you respect, I feel
> > that I must reply ;-) When I strip Eo library, I cannot in gcc step into
> > at all, I mean, I can't reach the final destination. It is like the
> > 'skip' feature of gdb. So for the moment, I am stuck with that filename
> > and need to find a solution.
> >
> > Second point, as I wrote before, there is a bug in gdb when executing
> > python scripts (link below). It will be fixed in gdb 7.6 that is
> > officially supposed to be delivered in mid-february 2013 but as a gdb
> > maintainer said "In the past few releases, we have typically been late
> > by a few weeks.", I think we will have to wait a little more.
> >
> > Hopefully, when I will have time, I will insert this script into SVN and
> > the installation will put it automatically into the /opt/e17 directory
> > (or different). The question here is if we have a common directory for
> > all this nice weird stuff or if it will be a new directory.
> >
> > JackDanielZ
> >
> > On 12/05/2012 04:24 PM, Tom Hacohen wrote:
> >> Cool. And we already talked a bit more on IRC about the usage of the
> binary
> >> name vs. the source file name, so I'm happy, no need for your reply
> here.
> >> On 5 Dec 2012 05:16, "daniel.za...@samsung.com" <
> daniel.za...@samsung.com>
> >> wrote:
> >>
> >>> Hey Tom,
> >>>
> >>> I saw your mail, I just wanted to explain SeoZ how to do now until I
> put
> >>> it there automatically. I will change the name to eo_step.
> >>> I know this site, I don't know yet which way to use to configure gdb.
> >>> For the moment, I create manually a .gdbinit in my home directory and
> >>> there source the python script.
> >>> Well, I can put the script in src/utils/Eo and then install it into
> >>> /opt/e17/share/eo/utils or something like that. But I think the user
> >>> will have to configure manually gdb, i.e add 'source
> >>> /opt/e17/.../eo_step.py' into ~/.gdbinit.
> >>> Just for info, there is some bug into gdb that makes it crash with the
> >>> script in a specific scenario. I opened a ticket
> >>> <http://sourceware.org/bugzilla/show_bug.cgi?id=14916> there and hope
> it
> >>> will help.
> >>>
> >>> Daniel
> >>>
> >>>
> >>> On 12/05/2012 01:29 AM, Tom Hacohen wrote:
> >>>> Daniel,
> >>>>
> >>>> It should be installed (as I've said before) see
> >>>> http://sourceware.org/gdb/onlinedocs/gdb/Python.html for more info.
> >>>> Then it'll be just a matter of loading the script and using it (or
> >>> possibly
> >>>> it'll get loaded automatically). Also, as I said, I think eo_jump is a
> >>>> terrible name and it should be changed to eo_step.
> >>>>
> >>>> Actually, reading back the thread, you didn't comment on any of my
> >>> messages.
> >>>>
> >>>> On Tue, Dec 4, 2012 at 12:13 PM, daniel.za...@samsung.com <
> >>>> daniel.za...@samsung.com> wrote:
> >>>>
> >>>>> You open gdb and you paste the function (from python to end) there.
> >>>>> After, when you encounter a eo_do function, instead of stepping into
> it,
> >>>>> you call the function (just type eo_jump) and it will do the job
> alone
> >>>>> and reach the function that you wanted.
> >>>>>
> >>>>> On 12/04/2012 10:54 AM, Daniel Juyung Seo wrote:
> >>>>>> Awesome!!!!
> >>>>>> I and co-workers have hard time to debug with eo.
> >>>>>> This looks very good but how can I use it?
> >>>>>>
> >>>>>> Daniel Juyung Seo (SeoZ)
> >>>>>>
> >>>>>> On Tue, Dec 4, 2012 at 5:15 PM, daniel.za...@samsung.com <
> >>>>>> daniel.za...@samsung.com> wrote:
> >>>>>>
> >>>>>>> Hi all,
> >>>>>>>
> >>>>>>> I am sure you faced difficulties to debug your program due to
> changes
> >>>>>>> with Eo. It is hard to know which function will be called by eo_do
> or
> >>>>>>> eo_do_super because of inheritance.
> >>>>>>>
> >>>>>>> I have written a python function for gdb that helps a lot. The
> command
> >>>>>>> is eo_jump, no arguments.
> >>>>>>> You can execute it when you reach some eo_do/eo_do_super... and it
> >>> will
> >>>>>>> jump over Eo code.
> >>>>>>>
> >>>>>>> This is a prototype so sorry for the potential bugs.
> >>>>>>>
> >>>>>>> For those who will look at this function, you can note some check
> that
> >>>>>>> the function is None, it is because Eo calls for memcpy. In this
> case,
> >>>>>>> we want it to not stop on this so we have to continue searching.
> >>>>>>>
> >>>>>>> Feel free to change, propose, hate this script :)
> >>>>>>>
> >>>>>>> Daniel (JackDanielZ)
> >>>>>>>
> >>>>>>> Function:
> >>>>>>> python
> >>>>>>> class Eo_jump(gdb.Command):
> >>>>>>>        def __init__(self):
> >>>>>>>           gdb.Command.__init__(self, "eo_jump",
> gdb.COMMAND_OBSCURE)
> >>>>>>>
> >>>>>>>        def invoke (self, arg, from_tty):
> >>>>>>>           while True:
> >>>>>>>              gdb.execute("step")
> >>>>>>>              self.priv_filename =
> >>>>>>> gdb.selected_frame().find_sal().symtab.filename
> >>>>>>>              self.priv_function = gdb.selected_frame().function()
> >>>>>>>              if (self.priv_filename != "lib/eo/eo.c") and
> >>>>>>> (self.priv_function != None):
> >>>>>>>                 break
> >>>>>>>              if (self.priv_filename == "lib/eo/eo.c"):
> >>>>>>>                 gdb.execute("step")
> >>>>>>>              if (self.priv_function == None):
> >>>>>>>                 gdb.execute("finish")
> >>>>>>> Eo_jump()
> >>>>>>> end
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>
> ------------------------------------------------------------------------------
> >>>>>>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> >>>>>>> Remotely access PCs and mobile devices and provide instant support
> >>>>>>> Improve your efficiency, and focus on delivering more value-add
> >>> services
> >>>>>>> Discover what IT Professionals Know. Rescue delivers
> >>>>>>> http://p.sf.net/sfu/logmein_12329d2d
> >>>>>>> _______________________________________________
> >>>>>>> enlightenment-devel mailing list
> >>>>>>> enlightenment-devel@lists.sourceforge.net
> >>>>>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>>>>>>
> >>>
> ------------------------------------------------------------------------------
> >>>>>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> >>>>>> Remotely access PCs and mobile devices and provide instant support
> >>>>>> Improve your efficiency, and focus on delivering more value-add
> >>> services
> >>>>>> Discover what IT Professionals Know. Rescue delivers
> >>>>>> http://p.sf.net/sfu/logmein_12329d2d
> >>>>>> _______________________________________________
> >>>>>> enlightenment-devel mailing list
> >>>>>> enlightenment-devel@lists.sourceforge.net
> >>>>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>>>>>
> >>>>>
> >>>>>
> >>>
> ------------------------------------------------------------------------------
> >>>>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> >>>>> Remotely access PCs and mobile devices and provide instant support
> >>>>> Improve your efficiency, and focus on delivering more value-add
> services
> >>>>> Discover what IT Professionals Know. Rescue delivers
> >>>>> http://p.sf.net/sfu/logmein_12329d2d
> >>>>> _______________________________________________
> >>>>> enlightenment-devel mailing list
> >>>>> enlightenment-devel@lists.sourceforge.net
> >>>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>>>>
> >>>>
> >>>
> >>>
> ------------------------------------------------------------------------------
> >>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> >>> Remotely access PCs and mobile devices and provide instant support
> >>> Improve your efficiency, and focus on delivering more value-add
> services
> >>> Discover what IT Professionals Know. Rescue delivers
> >>> http://p.sf.net/sfu/logmein_12329d2d
> >>> _______________________________________________
> >>> enlightenment-devel mailing list
> >>> enlightenment-devel@lists.sourceforge.net
> >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>>
> >>
> ------------------------------------------------------------------------------
> >> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> >> Remotely access PCs and mobile devices and provide instant support
> >> Improve your efficiency, and focus on delivering more value-add services
> >> Discover what IT Professionals Know. Rescue delivers
> >> http://p.sf.net/sfu/logmein_12329d2d
> >> _______________________________________________
> >> enlightenment-devel mailing list
> >> enlightenment-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>
> >
> >
> >
> ------------------------------------------------------------------------------
> > LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> > Remotely access PCs and mobile devices and provide instant support
> > Improve your efficiency, and focus on delivering more value-add services
> > Discover what IT Professionals Know. Rescue delivers
> > http://p.sf.net/sfu/logmein_12329d2d
> > _______________________________________________
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
>
>
> --
> Gustavo Sverzut Barbieri
> http://profusion.mobi embedded systems
> --------------------------------------
> MSN: barbi...@gmail.com
> Skype: gsbarbieri
> Mobile: +55 (19) 9225-2202
>
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
Tom.
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to