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 <
> 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
>>
>
>


------------------------------------------------------------------------------
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