Results 1 to 6 of 6

Thread: 'Debug naam' op een thread zetten

  1. #1
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?
    Posts
    1,046

    'Debug naam' op een thread zetten

    Moet je nu horen! Ik was in Delphi 7 mijn FireFox addon (zie http://xxm.sf.net/ ) aan het debuggen met firefox.exe als host process (de snoodaards hebben export function NSGetModule vervangen met een export record NSModule...)

    en ik zie plots in het threads debug window een naam op een thread staan: "Gecko_IOThread", ik dacht van tiens! ik wist niet dat dat kon binnen Delphi (7), dat moet ik opzoeken hoe die dat flikken (firefox is toch open source...)

    na wat rondneuzen op http://mxr.mozilla.org (en met een beetje hulp) schrik ik even van dat er Chromium code in FireFox zit, maar stoot ik op deze truuk, en die blijkt best te werken vanuit Delphi zelf:

    http://yoy.be/item.asp?i2945

  2. #2
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?
    Posts
    1,046
    mocht mijn website er ooit onderuit gaan, hier de code:
    Delphi Code:
    1. interface
    2.  
    3. function IsDebuggerPresent: BOOL; stdcall;
    4.  
    5. implementation
    6.  
    7. uses Windows;
    8.  
    9. function IsDebuggerPresent; external 'kernel32.dll';
    10.  
    11. procedure SetThreadName(ThreadDisplayName:AnsiString);
    12. var
    13.   ThreadInfo:record
    14.     dwType:LongWord;
    15.     szName:PAnsiChar;
    16.     dwThreadID:LongWord;
    17.     dwFlags:LongWord;
    18.   end;
    19. begin
    20.   if IsDebuggerPresent then
    21.     begin
    22.       ThreadInfo.dwType:=$1000;
    23.       ThreadInfo.szName:=PAnsiChar(ThreadDisplayName);
    24.       ThreadInfo.dwThreadID:=LongWord(-1);//calling thread
    25.       ThreadInfo.dwFlags:=0;
    26.       try
    27.         RaiseException($406D1388,0,SizeOf(ThreadInfo) div SizeOf(LongWord),@ThreadInfo);
    28.       except
    29.         //
    30.       end;
    31.     end;
    32. end;

  3. #3
    Interessante code met die RaiseException. Wat is $406D1388 precies?

  4. #4
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    All methodologies are based on fear. -- Kent Beck.

  5. #5
    Counting your refs Paul-Jan's Avatar
    Join Date
    Feb 2002
    Location
    Lage Zwaluwe
    Posts
    2,158
    Ja, of de source van TThread.NameThreadForDebugging in recente Delphi's ... :-)

  6. #6
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?
    Posts
    1,046
    awel dan nog, ikwist het (nog) niet

    Vos: die code is gewoon iets dat ze bij Microsoft hebben vastgelegd als afspraak voor debuggers

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •