[ekg-users] blokada input/output na screenie
Marcin Owsiany
porridge at debian.org
Wed Jan 7 16:05:47 CET 2009
On Wed, Jan 07, 2009 at 12:41:42PM +0100, Maciej Kwasniak wrote:
> Dnia 7-01-2009 o godz. 11:06 Marcin Owsiany napisał(a):
> > On Wed, Jan 07, 2009 at 10:41:39AM +0100, Maciej Kwasniak wrote:
> > > Moge oczywiscie zabic proces i uruchomic na nowo i pewnie tak trzeba
> > > bedzie zrobic. Ale myslalem ze to cos ze screenem. Chyba ze ktos bardzo
> > > chce dojsc do tego dlaczego EKG sie zawiesilo i powie mi co mam z tym
> > > dalej zrobic :)
> >
> > zainstaluje strace i gdb
> > spróbuj strace -p $pid_ekg
> > poczekaj chwilę, jeśli nic nie wypisze, to:
> > gcore $pid_ekg
> > gdb ekg core.$pid_ekg
> > bt
> >
> > --
> > Marcin Owsiany http://marcin.owsiany.pl/
> > GnuPG: 1024D/60F41216 FE67 DA2D 0ACA FC5E 3F75 D6F6 3A0D 8AA0 60F4 1216
>
>
> zrobilem jak pisales.
> Jednak nie musialem czekac ani ulamka sekundy, zaraz po wpisaniu:
> strace -p 2624
> (taki byl pid ekg) ekran zasypal mi sie liniami:
>
> poll([{fd=0, events=POLLIN, revents=POLLIN}, {fd=6, events=POLLIN,
> revents=POLLIN|POLLHUP}], 2, 166) = 2
> gettimeofday({1231328007, 400141}, NULL) = 0
> gettimeofday({1231328007, 400225}, NULL) = 0
> poll([{fd=0, events=POLLIN, revents=POLLIN}, {fd=6, events=POLLIN,
> revents=POLLIN|POLLHUP}], 2, -1) = 2
> gettimeofday({1231328007, 400400}, NULL) = 0
> gettimeofday({1231328007, 400482}, NULL) = 0
> poll([{fd=0, events=POLLIN, revents=POLLIN}, {fd=6, events=POLLIN,
> revents=POLLIN|POLLHUP}], 2, 166) = 2
> gettimeofday({1231328007, 400656}, NULL) = 0
> gettimeofday({1231328007, 400737}, NULL) = 0
> poll([{fd=0, events=POLLIN, revents=POLLIN}, {fd=6, events=POLLIN,
> revents=POLLIN|POLLHUP}], 2, -1) = 2
> gettimeofday({1231328007, 400912}, NULL) = 0
> gettimeofday({1231328007, 400993}, NULL) = 0
> poll([{fd=0, events=POLLIN, revents=POLLIN}, {fd=6, events=POLLIN,
> revents=POLLIN|POLLHUP}], 2, 166) = 2
> gettimeofday({1231328007, 401165}, NULL) = 0
> gettimeofday({1231328007, 401246}, NULL) = 0
>
> dosc dlugo czekalem i wcisnalem CTRL+C i sie skonczylo. EKG na szczescie
> dziala nadal przywieszone.
Spróbuj strace -e \!poll -e \!gettimeofday -p 2624
powinien pomijać wtedy te dwa wywołania. Wtedy naciśnij jakiś klawisz w
terminalu w którym działa ekg, tudzież poproś kogoś, żeby coś do Ciebie
napisał na gg. Powinieneś zobaczyć jakąś aktywość (jakiś read() i
później może jakiś write()).
> GDB mam, ale nie mam polecenia gcore, musze chyba cos doinstalowac ?
Nie mam pojęcia. U mnie jest w pakiecie gdb po prostu.
Ale zamiast tego możesz spróbować:
gdb ekg 2624
bt
exit
Tyle że dopóki nie wyłączysz gdb, ekg będzie zablokowane.
> Czy powyzsze linie cos mowia ?
Mówią tyle, że ekg oczekuje na dane z terminala i sieci. Czy je dostaje,
i czy coś robi z nimi, powinieneś zobaczyć po powyższym teście.
--
Marcin Owsiany <porridge at debian.org> http://marcin.owsiany.pl/
GnuPG: 1024D/60F41216 FE67 DA2D 0ACA FC5E 3F75 D6F6 3A0D 8AA0 60F4 1216
More information about the ekg-users
mailing list