2011-09-05 21 views
5

Çok iş parçacıklı bir uygulama kilitleniyor ve herhangi bir komutla yanıt vermiyor.Linux'ta çok iş parçacıklı bir askıda nasıl hata ayıklanır?

  1. gdb için bir süreç takın: Şans olmadan şunları denedim (: (gdb) 6026 ptrace işlemek için ekleme eklemek: hatası. İşleme izin verilmedi)
  2. gstack (aynen böyle asılı gstack)

bu süreci hata ayıklamak için iyi bir yolu var mı?

+0

Kök olarak veya işlemi oluşturan kullanıcı olarak mı yoksa başka bir kullanıcı olarak mı eklemeye çalışıyorsunuz? Programı gdb'den çalıştırmayı denediğiniz noktaya gelmeden önce denediniz mi? –

+0

@Jonatha Leffler Bu işlemi kökten geçirdim ve gdb'de işlemi eklemek için aynı kimliği kullandım. Bu ön plan süreci değil, bu bir daemon süreci. – Thangaraj

+0

Tamam; Eğer root olarak çalışırsa ve gdb'yi root olarak çalıştırmaya çalışıyorsanız, o zaman basit bir ayrıcalık meselesi değildir (fakat karmaşık bir konu olabilir). Genel olarak, benim yapacağım şey, '' follow-fork-mode '' ve 'fork-detach-mode' setini ayarlamak gibi seçenekleri kullanarak ggb 'de başlayacaktır. –

cevap

6

Tüm yanıtınız için teşekkür ederiz. Sorun çekirdek seviyesindedir./var/log/messages içindeki tüm çalışan işlemlerin yığınlarını kaydeden echo t>/proc/sysrq-trigger'ı kullandık. Bu yığın izi, sorunu analiz etmede yardımcı oldu. Yığın izleme kaynaktan

, dosya sistemi bir (dağılmış halde olan) başka bir işlem uygulama işlem adına süresiz yanıt için bekleme olayı bekledi yayınlanmıştır. Hangisi asılı durumda.

1

Büyük olasılıkla başka biri zaten bu işlemi izliyor. Kimin yaptığını bulmak için proc dosya sistemine bakın.

cat /proc/6026/status|grep TracerPid 
+0

TracePid alanı sıfırdır – Thangaraj

+0

Sonra neden biraz daha – ks1322

İlgili konular