When I compile without -O and -g, gdb behaves like with stripped library, i.e doesn't try to enter the function. Maybe I do something wrong. Tom, can you try it on your computer?
Thank you Daniel On 12/06/2012 12:45 AM, Tom Hacohen wrote: > Compile Eo in release mode: remove -O0/-g from your CFLAGS, re-configure Eo > (efl tree I assume) with --with-profile=release (or something like that, > just check the configure options, it's easy) and make && make install. You > can potentially just strip the binary, doesn't matter really... > > > On Wed, Dec 5, 2012 at 3:52 PM, [email protected] < > [email protected]> wrote: > >> Tom, the 'sudo strip -g libeo.so' on my computer prevents me to see info >> about this library in gdb, as explained before. How can I compile Eo in >> release mode? >> >> Gustavo, this could be very useful. We need to check if it really can be >> done and if it is easy for the user. Is the eo_do_step supposed to >> execute the functions too? How does it wait for commands (your last >> line), I mean, is it inside the eo_do_step function? >> Eo uses va_list to store the parameters and we need to be careful with >> that. >> >> On 12/05/2012 05:11 PM, Tom Hacohen wrote: >>> 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 < >>> [email protected]> 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, [email protected] >>>> <[email protected]> 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, "[email protected]" < >>>> [email protected]> >>>>>> 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, [email protected] < >>>>>>>> [email protected]> 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, [email protected] < >>>>>>>>>> [email protected]> 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 >>>>>>>>>>> [email protected] >>>>>>>>>>> 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 >>>>>>>>>> [email protected] >>>>>>>>>> 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 >>>>>>>>> [email protected] >>>>>>>>> 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 >>>>>>> [email protected] >>>>>>> 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 >>>>>> [email protected] >>>>>> 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 >>>>> [email protected] >>>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >>>> >>>> -- >>>> Gustavo Sverzut Barbieri >>>> http://profusion.mobi embedded systems >>>> -------------------------------------- >>>> MSN: [email protected] >>>> 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 >>>> [email protected] >>>> 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 >> [email protected] >> 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 [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
