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

Reply via email to