RE: single stepping mips remote programs built with gcc 4.0

Newman, Sarah R
2005-11-22T19:48:44Z

Breakpoint 1, step_into_function (ecs=0x22d810)
at ../../GDB-ISS/gdb/infrun.c:2646
2646 s = find_pc_symtab (stop_pc);
(gdb) p/x stop_pc
$5 = 0xffffffff80001990
(gdb) next
2647 if (s && s->language != language_asm)
(gdb) p *s
$6 = {next = 0x104c6058, blockvector = 0x104ceb68, linetable =
0x104cebd8,
block_line_section = 2, primary = 1, macro_table = 0x0,
filename = 0x104cebc8 "tmp.c", dirname = 0x104cec60 "/tmp/",
free_code = free_linetable, free_func = 0, nlines = 0, line_charpos =
0x0,
language = language_c, debugformat = 0x104cec68 "stabs", version =
0x0,
fullname = 0x1051d0f0 "/tmp/tmp.c", objfile = 0x10411fb8}
(gdb) next
2648 ecs->stop_func_start = SKIP_PROLOGUE (ecs->stop_func_start);
(gdb) p/x ecs->stop_func_start
$7 = 0xffffffff80001990
(gdb) step
gdbarch_skip_prologue (gdbarch=0x103fc470, ip=18446744071562074512)
at ../../GDB-ISS/gdb/gdbarch.c:2909
2909 gdb_assert (gdbarch != NULL);
(gdb) next
2910 gdb_assert (gdbarch->skip_prologue != NULL);
(gdb)
2911 if (gdbarch_debug >= 2)
(gdb)
2913 return gdbarch->skip_prologue (ip);
(gdb) step
mips_skip_prologue (pc=18446744071562074512)
at ../../GDB-ISS/gdb/mips-tdep.c:4187
4187 if (find_pc_partial_function (pc, NULL, &func_addr, NULL))
(gdb) next
4189 CORE_ADDR post_prologue_pc = skip_prologue_using_sal
(func_addr);
(gdb) p func_addr
$8 = 18446744071562074512
(gdb) p/x func_addr
$9 = 0xffffffff80001990
(gdb) step
skip_prologue_using_sal (func_addr=18446744071562074512)
at ../../GDB-ISS/gdb/symtab.c:4027
4027 find_pc_partial_function (func_addr, NULL, &start_pc,
&end_pc);
(gdb) next
4028 start_pc += DEPRECATED_FUNCTION_START_OFFSET;
(gdb) p/x start_pc
$10 = 0xffffffff80001990
(gdb) p/x end_pc
$11 = 0xffffffff80001998
(gdb) next
4030 prologue_sal = find_pc_line (start_pc, 0);
(gdb)
4031 if (prologue_sal.line != 0)
(gdb) p prologue_sal
$12 = {symtab = 0x104ceb80, section = 0x0, line = 8,
pc = 18446744071562074512, end = 18446744071562074520}
(gdb) p/x prologue_sal
$13 = {symtab = 0x104ceb80, section = 0x0, line = 0x8,
pc = 0xffffffff80001990, end = 0xffffffff80001998}
(gdb) next
4033 while (prologue_sal.end < end_pc)
(gdb) p/x end_pc
$14 = 0xffffffff80001998
(gdb) next
4054 return prologue_sal.end;
(gdb)
4055 }
(gdb)
mips_skip_prologue (pc=18446744071562074512)
at ../../GDB-ISS/gdb/mips-tdep.c:4190
4190 if (post_prologue_pc != 0)
(gdb)
4191 return max (pc, post_prologue_pc);
(gdb) p/x pc
$15 = 0xffffffff80001990
(gdb) p/x post_prologue_pc
$16 = 0xffffffff80001998
(gdb) next
4208 }
(gdb)
gdbarch_skip_prologue (gdbarch=0x103fc470, ip=18446744071562074512)
at ../../GDB-ISS/gdb/gdbarch.c:2914
2914 }
(gdb)
step_into_function (ecs=0x22d810) at ../../GDB-ISS/gdb/infrun.c:2650
2650 ecs->sal = find_pc_line (ecs->stop_func_start, 0);
(gdb) p/x ecs->stop_func_start
$17 = 0xffffffff80001998
(gdb) next
2657 if (ecs->sal.end
(gdb) p/x ecs->sal
$18 = {symtab = 0x104ceb80, section = 0x0, line = 0xb,
pc = 0xffffffff80001998, end = 0xffffffff800019a0}
(gdb) next
2678 if (gdbarch_adjust_breakpoint_address_p (current_gdbarch))
(gdb) next
2685 if (ecs->stop_func_start == stop_pc)
(gdb) next
2696 init_sal (&sr_sal); /* initialize to zeroes */
(gdb) next
2697 sr_sal.pc = ecs->stop_func_start;
(gdb) next
2698 sr_sal.section = find_pc_overlay (ecs->stop_func_start);
(gdb) next
2703 insert_step_resume_breakpoint_at_sal (sr_sal,
null_frame_id);
(gdb) p/x sr_sal
$19 = {symtab = 0x0, section = 0x0, line = 0x0, pc = 0xffffffff80001998,
end = 0x0}