This is the mail archive of the
insight@sources.redhat.com
mailing list for the Insight project.
Problem with "file" command from CVS_HEAD
- From: Steven Johnson <sjohnson at sakuraindustries dot com>
- To: insight at sources dot redhat dot com
- Date: Mon, 16 May 2005 17:01:49 -1100
- Subject: Problem with "file" command from CVS_HEAD
I have a problem with insight from CVS_HEAD and the "load" command.
If i start Insight with --nw, and use "file" it does what i expect, and
loads the file i wish to debug. (No Problem)
If i start insight with the gui enabled, and use "file". I get a
segfault, after "insight" has recursively tried to call
"target_fetch_registers(pc)" I say recursively, because i started
"insight" under GDB (native) and the back trace was enourmous (actually
segfaulted GDB before it could finish), and had an obvious recursive
call structure through the code which reads the pc register.
I have various debug options enabled, and immediately after the "file"
command, insight reports in the debug log:
architecture_changed_event
{ flush_cached_frames () }
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
Operating system is "".
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
target_terminal_ours ()
No symbol table is loaded. Use the "file" command.
observer_notify_executable_changed() called
{ flush_cached_frames () }
target_xfer_memory (0x32478, xxx, 4, read, xxx) = 4, bytes = 94 21 ff f8
target_xfer_memory (0x3247c, xxx, 4, read, xxx) = 4, bytes = 7c 08 02 a6
target_xfer_memory (0x32480, xxx, 4, read, xxx) = 4, bytes = 90 01 00 0c
target_xfer_memory (0x32484, xxx, 4, read, xxx) = 4, bytes = 4b fd db 5d
target_xfer_memory (0x32488, xxx, 4, read, xxx) = 4, bytes = 3d 20 00 55
target_fetch_registers (pc)target_fetch_registers
(pc)target_fetch_registers (pc)target_fetch_registers
(pc)target_fetch_registers (pc)target_fetch_registers
(pc)target_fetch_registers (pc)target_fetch_registers
(pc)target_fetch_registers (pc)target_fetch_registers
(pc)target_fetch_registers (pc)..........many many times.
**segfault**
I believe the segfault occurs, because the program stack is exhausted by
the recursive call to target_fetch_registers (pc)
The problem is, i havent connected to the target yet, so how can it read
memory, or fetch registers at all.
This seems to be restricted to insight, so my first thought is, insight
isnt checking something that GDB does, and so is executing things GDB
normally doesnt on a "file" load. I dont mind trying to correct this,
but I do not have any idea where to start looking. Some pointers of
where I should look, or how "file" differs when insight is running, as
opposed to GDB would be appreciated.
Thanks in advance,
Steven Johnson