0

ドラッグすると、ときどき(5回に1回)、瞬間的に(5〜10秒)「フリーズ」することがあります。おそらく-startcommandコールバックの一部です。最初のドラッグでは発生しません。

コールバックは十分に単純です。ドラッグカーソルのテキストをドラッグされている値に設定するだけです。

sub DragStart {
  my( $token ) = @_;

  my $w = $token->parent;
  my $e = $w->XEvent;

  my $idx = $w->nearest( $e->y );
  if( defined $idx ) {
    $token->configure( -text -> $w->get( $idx );
    my( $X, $Y ) = ( $e->x, $e->y );
    $token->MoveToplevelWindow( $X, $Y );
    $token->raise;
    $token->deiconify;
    $token->FindSite( $X, $Y, $e );
  }
}

問題が私のコードの外にあるのかどうか疑問に思わずにはいられないので、フリーズが発生したときに現在呼び出されているサブルーチンを特定する方法を見つけたいと思います。

そのようなツールはありますか?リアルタイムのコールスタックがあれば、それを示すものがそれを行います。

4

1 に答える 1

2

アプリケーションは、Perlのデバッガーの1つを介して実行する必要があります。

あなたはTKの人なので、Devel :: ptkdbを試すか、単に標準のPerlデバッガーを使用することができます。

于 2009-07-20T17:39:27.517 に答える