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