AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Debug-Ausgabe

Ein Thema von Michael II · begonnen am 30. Sep 2022 · letzter Beitrag vom 1. Okt 2022
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.023 Beiträge
 
Delphi 12 Athens
 
#1

AW: Debug-Ausgabe

  Alt 30. Sep 2022, 22:01
Woher das ggf. in deinem Code ausgelöst wird, ist sehr einfach zu finden. Mach selbst mit OutputDebugString eine Ausgabe und debugge in diese Funktion hinein (wenn du bei dem Aufruf ankommst, Assemblerfenster öffnen und in die Jumps mit F7 hinein debuggen bis du an der Funktion selbst ankommst). Dann setze dort einen Haltepunkt. Nun wirst du bei jedem Aufruf der Funktion an deinem Haltepunkt vorbei kommen. Das sieht dann aus wie hier:

OutputDebugString.png
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Debug-Ausgabe

  Alt 30. Sep 2022, 22:20
Herzlichen Dank euch 2....

Danke für den ICS Link.

Ich hatte einen Breakpoint in der Windows.pas gesetzt - aber da hält in diesem Fall natürlich nix. Dass ich eine Ebene tiefer warten kann, kam mir echt nicht in den Sinn.
Michael Gasser
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Debug-Ausgabe

  Alt 1. Okt 2022, 08:55
Windows 11 - Windows 32 Bit - ICS 8.69

Danke nochmals jaenicke für den Debugger Tipp. Ich weiss nun wo aber nicht wieso.

Da himitsu einen Link auf eine "ungelöste" DP Meldung von Angus (ICS) gepostet hat, schreib ich rasch wo...

Die Debugmeldung wird in OverbyteIcsWinsockImpl.Inc Result := Fgethostname(name, len); - genauer nach einem call in WS2_32.gethostname: - ausgegeben.


Delphi-Quellcode:
function Ics_gethostname(name: PAnsiChar; len: Integer): Integer;
begin
    if @Fgethostname = nil then
        @Fgethostname := GetProc('gethostname');
    Result := Fgethostname(name, len);
end;

Beispiel:
Delphi-Quellcode:
uses OverbyteICSWSocket;

  showmessage(localiplist.Count.ToString);
Michael Gasser

Geändert von Michael II ( 1. Okt 2022 um 09:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.477 Beiträge
 
Delphi 12 Athens
 
#4

AW: Debug-Ausgabe

  Alt 1. Okt 2022, 12:14
Im Windows können sich Programme/Kompoenten registrieren, welche beim Auslösen gewisser Namen helfen sollen.
Und da ist wohl was nicht richtig registriert/aufrufbar.

Ich hatte einen Breakpoint in der Windows.pas gesetzt - aber da hält in diesem Fall natürlich nix. Dass ich eine Ebene tiefer warten kann, kam mir echt nicht in den Sinn.
Jupp, da hält er auch nur an, wenn der Aufruf aus Felphi kommt,
da der Haltepunkt nicht in der Funktion gesetzt wird, sondern auf den JMP in die Import-Tabelle deiner DLL/EXE ... andere DLLs haben ihre eigenen Imports.

[edit]
Zitat:
GetProc
hier wird nichtmal der Import aus der Windows-Unit genommen, sondern die Adresse direkt geholt, also an der Windows.pas vorbei aufgerufen.

MSDN-Library durchsuchenGetHostName ist eine API, die es erst seit Windows 8.1 gibt.
Auf diese Weise raucht es nicht gleich beim Programmstart und Windows verhindert den Start,
sondern es kommt erst beim Aufruf und man kann im Code drauf reagieren, wenn jemand das Programm in was Uraltem, wie Windows 7, XP usw. ausführen täte.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 1. Okt 2022 um 12:20 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz