public inbox for frysk@sourceware.org
 help / color / mirror / Atom feed
* Minutes meeting 2007-08-29
@ 2007-08-29 14:54 Elena Zannoni
  2007-08-29 14:59 ` Mark Wielaard
  0 siblings, 1 reply; 2+ messages in thread
From: Elena Zannoni @ 2007-08-29 14:54 UTC (permalink / raw)
  To: frysk

[-- Attachment #1: Type: text/plain, Size: 1 bytes --]



[-- Attachment #2: frysk-20070829 --]
[-- Type: text/plain, Size: 4162 bytes --]

Frysk meeting 2007-08-29
==========================

Tim, Andrew, Mark, Teresa, Elena, Phil, Sami. Haven't heard anybody
else speak, please add yourself if you were in attendance.

[Mark to post the whole CLI session]


Tim demo:
---------

test program fibonacci clone test
funit-fib-clone is the name of the testcase/program
fib() is called in a new thread for each iteraction of the fibonacci sequence

Problem:
2 threads stopped at the breakpoint but it produces multiple (5)
breakpoint hit messages.

Breakpoint 0 is hit

[..] type commands 
"[stopped] where"
"[0.2] print arg" show out the value in 0.2 thread

"where" will show [0.1] [0.0] stack (they have same stack) and [0.2] stack.


"viewset" will show all the threads in a table format

"[0.0] halt" will stop the 0.0 thread

"[0.0] go"

"[0.0:1] go" doesnt' work yet

"go" continues everything
got exception unfortunately


there is a focus command

run again

focus [0.2]
where

gives bt only for that thread


Events are coming out of the stepping engine, but in the corefile
target case, the stepping engine is not entered at all. So if you ask
what a thread is doing, in this case you cannot ask the stepping
engine.

dynamic vs static set: whether you are chosing to look at the
currently live threads or ahead of time you decide to focus on certain
threads whether or not they come and go.

session manager needs to be told that there is a new process even if
the process is a dead one coming from a corefile.  Should pick a set
and apply "print" (for instance) to that set, the core command should
be able to tell the session manager what threads it has.  But what ops
are legal to threads? Need to be able to tell what's ok to apply.

HPD model doesn't include dead threads. Corefile threads are not in
stopped state, because it would imply you have control ability over the
thread.  So there are 2 classes of threads. Dead state, you cannot
control it.  Eventually a live thread can enter into the dead state
too.

bp event has to go through the stepping engine, then notify the
interested parties that the thread is now in stopped state.

session manager is central to this problem

if somebody runs a second program? you are supposed to do a "load".
Load: makes visible a dead executable, you can do stuff to a dead
executable, show values, assembly etc. --> Rick working on this

Then you do a Run: replaces the excutable, instead should create
another set.  then you can go back to the original executable.

We have 2 session managers: one for the gnome and one for the hpd.
[Plans to merge them?]

discussion on exceptions:
------------------------
What to do when a command fails?

Create a class of exception that represents that. 
Print across multiple sets, what do you do if it fails

right now we only have runtime exceptions. Can this class be extended.
create a non fatal error exception. Hard to define if an exeption is fatal

catch runtime exceptions and print just the description instead of
printing the backtrace. The average user doesn't want to see the
details.

at the moment, each command handles exceptions separately.

hard to decide what thread to kill and what to keep running

sami: proposes to have different classes of exceptions, less and less generic.


example shown by Phil in the corefile, in peek(), it throws runtime
exception. How to catch it?

Deciding if it's fatal should be left to the client of the low level
code throwing the exception.

more on sets
-------------

there is no way to reuse the slots in the set notation.
There is no way to get rid of a process either

hpd resets the ptid count everytime it restarts a run.  but andrew
doesn't think that's a good idea. Better continue and not restart.


format for print discussion: Andrew
------------------------------------

print 2.5 -format x
print 2.5 -format t --> doesn't work? should it work?
print 2.5 -format o

some bugs in printing regiters
print $eax -format f
regs
how to find out the names of the floating point registers in the fhpd?

formt -x on a fp prints it in hex as a floating point

printing array slices: how to specify the syntax?

[Andrew to post notes on his demo]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Minutes meeting 2007-08-29
  2007-08-29 14:54 Minutes meeting 2007-08-29 Elena Zannoni
@ 2007-08-29 14:59 ` Mark Wielaard
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Wielaard @ 2007-08-29 14:59 UTC (permalink / raw)
  To: Elena Zannoni; +Cc: frysk

[-- Attachment #1: Type: text/plain, Size: 329 bytes --]

On Wed, 2007-08-29 at 10:52 -0400, Elena Zannoni wrote:
> Frysk meeting 2007-08-29
> ==========================
> 
> Tim, Andrew, Mark, Teresa, Elena, Phil, Sami. Haven't heard anybody
> else speak, please add yourself if you were in attendance.
> 
> [Mark to post the whole CLI session]

There you go (attached).

Cheers,

Mark

[-- Attachment #2: fhpd.session --]
[-- Type: text/plain, Size: 6706 bytes --]

[mark@hermans frysk]$ bindir/fhpd
(fhpd) run pkglibdir/funit-fib-clone 3
Attached to process 6347
(fhpd) break fib
breakpoint 0
(fhpd) go
(fhpd) Breakpoint 0 fib
where
#0 0x08048608 in fib(void * arg = 0x400000000003) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0804876e in main(int argc = 8367484,byte * * argv = 0x6c0ce6,byte * * envp = 0x714b4000000000) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#109
#2 0x006c0f70 in __libc_start_main () from /lib/libc-2.6.so
#3 0x08048541 in _start () from /home/mark/src/frysk-obj/frysk-core/frysk/pkglibdir/funit-fib-clone
(fhpd) go
(fhpd) Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
where
[0.0]
[0.1]
#0 0x08048608 in fib(void * arg = 0xb7f9048000000002) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
[0.2]
#0 0x08048608 in fib(void * arg = 0xb7f8c48000000001) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
(fhpd) [0.1] where
#0 0x08048608 in fib(void * arg = 0xb7f9048000000002) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
Creating new HPD notation set.
(fhpd) [stopped] where
[0.1]
#0 0x08048608 in fib(void * arg = 0xb7f9048000000002) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
[0.2]
#0 0x08048608 in fib(void * arg = 0xb7f8c48000000001) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
Creating new stopped state set.
(fhpd) [0.2] print arg
[0.2]

0xb7f8c48000000001
Creating new HPD notation set.
(fhpd) viewset
Target set      pid     id
[0.0]   6347    6347
[0.1]   6347    6352
[0.2]   6347    6353
(fhpd) [0.0] halt
Creating new HPD notation set.
(fhpd) where
[0.0]
#0 0x00110402 in __kernel_vsyscall () from [vdso]
#1 0x0084e535 in pthread_join () from /lib/libpthread-2.6.so
#2 0x080486a7 in fib(void * arg = 0x400000000003) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#84
#3 0x0804876e in main(int argc = Symbol "argc" has an unknown type.,byte * * argv = Symbol "argv" has an unknown type.,byte * * envp = Symbol "envp" has an unknown type.) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#109
#4 0x006c0f70 in __libc_start_main () from /lib/libc-2.6.so
#5 0x08048541 in _start () from /home/mark/src/frysk-obj/frysk-core/frysk/pkglibdir/funit-fib-clone
[0.1]
#0 0x08048608 in fib(void * arg = 0xb7f9048000000002) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
[0.2]
#0 0x08048608 in fib(void * arg = 0xb7f8c48000000001) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
(fhpd) [0.0] go
Creating new HPD notation set.
(fhpd) where
[0.0]
[0.1]
#0 0x08048608 in fib(void * arg = 0xb7f9048000000002) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
[0.2]
#0 0x08048608 in fib(void * arg = 0xb7f8c48000000001) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
(fhpd) [0.0-1] go
Error: Erroneous p/t set notation, ',' expected
(fhpd) [0.0:1] go
Creating new HPD notation set.
(fhpd) where
[0.0]
[0.1]
#0 0x08048608 in fib(void * arg = 0xb7f9048000000002) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
[0.2]
#0 0x08048608 in fib(void * arg = 0xb7f8c48000000001) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
(fhpd) go
(fhpd) Exception in thread "Thread-1" java.lang.IllegalStateException: Already stepping
   at frysk.proc.Breakpoint.prepareStep(fhpd)
   at frysk.proc.live.LinuxTaskState$Running.sendContinue(fhpd)
   at frysk.proc.live.LinuxTaskState$BlockedSignal.handleUnblock(fhpd)
   at frysk.proc.live.LinuxTaskState$BlockedSignal.handleDeleteObservation(fhpd)
   at frysk.proc.Task.handleDeleteObservation(fhpd)
   at frysk.proc.TaskObservation.handleDelete(fhpd)
   at frysk.proc.live.LinuxProcState$3.handleDeleteObservation(fhpd)
   at frysk.proc.Proc$15.execute(fhpd)
   at frysk.event.EventLoop.runEventLoop(fhpd)
   at frysk.event.EventLoop.run(fhpd)
fib (3) = 2

[mark@hermans frysk]$ !!
bindir/fhpd
(fhpd) run pkglibdir/funit-fib-clone 4
Attached to process 6371
(fhpd) break fib
breakpoint 0
(fhpd) run
Usage: run executable arguments*
(fhpd) gog
Error: Unrecognized command: gog.
(fhpd) go
(fhpd) Breakpoint 0 fib
go
(fhpd) Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
viewsets
Error: Unrecognized command: viewsets.
(fhpd) viewset
Target set      pid     id
[0.0]   6371    6371
[0.1]   6371    6373
[0.2]   6371    6374
(fhpd) focus [0.2]
Creating new HPD notation set.
(fhpd) where
#0 0x08048608 in fib(void * arg = 0xb7f7248000000002) /home/mark/src/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-fib-clone.c#52
#1 0x0084d44b in start_thread () from /lib/libpthread-2.6.so
#2 0x0077b80e in clone () from /lib/libc-2.6.so
(fhpd) go
(fhpd) Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
Breakpoint 0 fib
viewset
Target set      pid     id
[0.2]   6371    6374
(fhpd)  
(fhpd) 
(fhpd) 
(fhpd) quit
Quitting...

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-08-29 14:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-29 14:54 Minutes meeting 2007-08-29 Elena Zannoni
2007-08-29 14:59 ` Mark Wielaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).