2009-07-20 2 views
0

-startcommand 콜백의 일부로 —을 드래그 할 때 가끔씩 (한 번에 다섯 번), 일시적으로 (5-10 초) "얼어 있음"이 표시됩니다. 첫 번째 드래그에서 결코 발생하지 않습니다.어떻게 드래그 동작이 Perl/Tk에서 일시적으로 멈추는 지 알 수 있습니까?

콜백은 간단합니다. 그냥 끌고있는 값으로 드래그 커서의 텍스트를 설정합니다

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); 
    } 
} 

내가 도울하지만 문제는 내 코드의 외부 궁금 할 수없는, 그래서 나는 발견 할 일은하고 싶은 것을 얼어 붙을 때 어떤 서브 루틴이 현재 호출되는지를 식별하는 방법.

이러한 도구가 있습니까? 실시간 호출 스택이 있으면 뭔가이를 수행합니다.

답변

2

Perl의 디버거 중 하나를 통해 응용 프로그램을 실행해야합니다.

TK 사람이므로 Devel::ptkdb을 시도하거나 표준 Perl debugger으로 간단히 이동하십시오.

+0

Devel :: ptkdb는 내가 찾고있는 것입니다. 고맙습니다. – Trueblood

관련 문제