This is the mail archive of the
frysk@sourceware.org
mailing list for the frysk project.
Re: meeting 2007-07-25 9:30 US east coast time
- From: Andrew Cagney <cagney at redhat dot com>
- To: frysk <frysk at sourceware dot org>
- Date: Wed, 25 Jul 2007 11:28:24 -0400
- Subject: Re: meeting 2007-07-25 9:30 US east coast time
- References: <46A74FCB.1050302@redhat.com>
[toronto hit a technical hurdle with a machine, round table was first]
cagney:
-> moved fhpd to frysk.hpd and created per-command tests in that
directory; for instance frysk.hpd.TestStackCommands
everyone encouraged to continue
-> overhauled frysk-asm.h; with mike got it working with CFI so that
assembler can produce correct stack backtraces
teresa:
-> continuing with debug-info installing
-> got fdebuginfo working -> lists debug info files for program
-> next utility [fdebugrpm] will install missing debuginfo using yum/sudo
-> extension is to install debuginfo locally (i.e., not as super-user)
stan; [away]
-> overhauled expression parser to
-> fixed breakpoint syntax to use "#" instead of "@", ya!!!
rick:
-> fighting source window vs bash; added recovery code so that when
things go wrong an un-marked source window will be displayed (which is
way way better than a stack backtrace)
-> investigating slowdown when examining bash sources
phil:
-> hopefully closing out corefile cleanups: corefile factory; streaming
data to file (instead of double buffering) as final speed up
-> discussion about where to put the refactored code. For momment
frysk.util, but frysk.corefile might be final resting place
suggestion of the addition of a dump core button/command
kris:
-> documenting stepping engine (the one in frysk.rt)
-> chasing another fd0 closed bug
-> working on crash recovery in automated builds
-> helping pearl come up-to-speed with memory and disassembler changes
pearl:
-> Working on memory and disassembler windows/bugs
[cagney asked if pearl could assign her self these bugs]
mark:
-> finishing logical-memory (memory where breakpoints are not visible)
object
-> have reproducer for 4747; need to handle a signal becomming pending
during a step (part of finishing up stepping; "fix" is to break it down
into two events - one notifying that a signal is pending (then
unblocked) and one notifying that a step to first instruction of signal
handler has occured.
-> studying libunwind, dwarf doco, and looking at rpm notes
sami:
-> testing new fstack [will commit to branch]
-> working to get libdwfl to return needed scope information
-> changed stack code to use print writer
---- // ----
Demo one: fstack -a <<sami to post text from example>>
-> displays all known variables and their status
bug#0 likely two many variable optimized out messages(investigating)
bug#1 when printing a string, can it be "C"ified; for instance char *foo
= "abc\r\n"
bug#2 include solib in default (or elf) backtrace (it was added to the
-a output which is much better)
bug#3 add # as prefix to file name so that it can be cut/paste to
breakpoint code
[side discussion about that, example of foo.c#23 not being clearly a
file or a struct]
bug#4 add way to specify other scopes
bug#5 print available line number information for each variable
---- // ----
Demo two: disassemble command <<nurdin to post text from example>>
-> displays assembler _round_ the pc and not assembler of entire function
-> has marker showing were $pc or address is
bug#0 option to disassemble entire function
bug#1 disassembler for non-native architecture (DisassemblerFactory)
bug#2 core file didn't work :-(
bug#4 <<disassemble <address> >> didn't disassemble correct address
bug#5 fhpd usage message out-of-date
bug#6 list command's "*" marker should be before line number (so it
isn't confused with source code)
bug#7 list commands "*" isn't in the middle of the listed code
---- // ----
different brekpoint addresses:
case #1: function prologue
A "traditional" function looks something like:
entry_point: <---- break
*entry_point
set-up new stack frame [prologue]
<---- break
entry_point
.... code proper ...
tear down stack frame [epilogue]
return
(for details see frysk-asm.h's macros). When setting a breakpoint it
can either be set before after the prologue code. DWARF provides
information that specifies where the end of the prologue is and so when
stepping into or halting at a function it can stop after the frame is
constructed instead of before.
The difference is marginal, and with modern ISAs there typically isn't a
proper frame anyway.
case#2 c++ constructors
Consider something like:
class parent { parent() ... }
class child extends parent { child () ... }
In C++, parent, for constructor parent() has two methods; one is called
for the case of "new parent()" and a second is called for the case of
"new child()".
case#3 none of the above;
to discuss on IRC
./