This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: recursive user-defined commands and


>>>>> ">" == Selcuk Kopru <selcuk.kopru@tyazilimevi.com> writes:

>> I'm trying to write user-defined commands to view some
>> nested/embedded classes which form a huge data hierarchy.

My advice is to switch to CVS GDB and use the new Python-based
pretty-printing feature.

With this feature you can write Python code to customize the display of
various objects in your program.  This is mostly transparent to the user
-- "print" will print them prettily, so will stack traces, so will MI
(soon), etc.

>> define show_string
>> 	wchar_print ((CMyString*)$arg0).m_Value
>> end

CVS GDB also has direct support for wide characters.

>> If the "show_dag" command is being hit for the second time in the same
>> call sequence then the "$dlist" variable becomes invalid at the time the
>> control returns back to the first instance of the "show_dag" command and
>> resulting in a "Cannot access memory at address 0x.." error message. How
>> can I prevent this error?

I suppose you could allocate an array and then manage the recursion
manually by using $dlist[$depth].

Otherwise, yeah, this seems like a limitation of gdb's scripting
language.  It seems like it would nice to let user-defined commands
define local variables.

Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]