This is the mail archive of the gdb@sources.redhat.com 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]

RFC: ui_out type?


The old assembler code would print:

0x8048153 <foostatic>: push %ebp
0x8048154 <foostatic+1>: mov %esp,%ebp

The new one prints:

0x08048153 <foostatic+0>: push %ebp
0x08048154 <foostatic+1>: mov %esp,%ebp

Note the "+0" in <foostatic+0>

This is because the output code is shared between the CLI and MI output and the MI output version 1 is always expecting the "offset" keyword, even if it is zero (based on the current MI tests).

Sometimes it is necessary to test if the uiout object is of a certain class. In this case I would like to test if it is of the "cli" type and do not generate the offset when it is zero. Some other types it will be necessary to check if the object is of the "mi" type, because we will need to test which version of the MI we are generating output for.

I have filled the gdb/774 asking for a function like that.

I am currently stuck with the disassembler unification because I either break a CLI test by having the "+0" in there (looks ugly, also), or I break some MI tests by not having the 'offset="0"' there.

Note: The MI output keywords are supposed to be optional, so not having an offset keyword in the output would be fine (meaning that it is a zero offset). But the current v1 tests, which have power of spec, currently look for it explicitly. We should remove this from the v2 tests for the cases the offset is zero, I believe.




--
Fernando Nasser
Red Hat - Toronto E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9


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