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]

mi_cmd_disassemble bug?


Dear all:

        I have found that when Eclipse call gdb to disassemble the program 
from the appointed line in mixed source mode, there is some problem.

        For example, if the program stopped at line 140 in main, then the 
user want to see the disassembled codes mixed with C source codes, Eclipse 
will
       using the following command:

        xxx-data-disassemble -f example.c -l 140 -n 100 -- 1

        then gdb will call function  mi_cmd_disassemble which will always 
disassemble from the start address of the function which includes that 
line.
 
        But I think what Eclipse expect gdb to do is disassembling from 
where line 140 start instead of the start address of that function.

        So in GDB6.7 mi/mi-cmd-disas.c, in function mi_cmd_disassemble

        Should the folloing code be modified ?

       if (!find_line_pc (s, line_num, &start))
         error (_("mi_cmd_disassemble: Invalid line number"));
       if (find_pc_partial_function (start, NULL, &low, &high) == 0)
         error (_("mi_cmd_disassemble: No function contains specified 
address"));
       }

        gdb_disassembly (uiout,
                    file_string,
                    line_num,
                    mixed_source_and_assembly, how_many, low, high);
 
        Should it be?

        if (!find_line_pc (s, line_num, &start))
         error (_("mi_cmd_disassemble: Invalid line number"));
       }

        gdb_disassembly (uiout,
                    file_string,
                    line_num,
                    mixed_source_and_assembly, how_many, start, high);


 

 

Wang Jiong 

  tel:2254


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