Startadresse eines Threads
-
Ich würde gerne die Startadresse eines Threads heraus finden, allerdings weiß ich
leider nicht, wie ich das bewerkstelligen kann. Auch nach langem suchen bin ich
nicht wirklich fündig geworden. Die einzig brauchbare Information fand ich hier:
http://forum.sysinternals.com/how-can-i-get-a-threads-start-address_topic11792_post53682.htmlLeider kann ich damit nicht viel Anfangen. Deswegen möchte ich fragen, ob es dazu
Beispiele gibt, oder ob noch andere Methoden möglich sind.
-
1. Für welches OS?
2. Wozu brauchst Du das?
3. Je nach Antwort zu 1. bist Du vermutlich im falschen Forum.
-
Also der Anfang eines Threads ist ja die Adresse der Funktion, die aufgerufen wird. Ist es das was du suchst?
Die Adresse einer Funktion kannst du mit einem Disassmebler rausfinden. Das geht z.B mit GDB, IDA Pro oder aber auch ollydbg.//EDIT
Natürlich könne das, wenn du den Code sowieso hast auch die Entwicklungsumgebung mit einem eingebauten Debugger (VS kann das z.B).
-
Da es für private Zwecke ist würde Windows 7 theoretisch reichen.
Wie ich das ganze mit einem Disassembler finde weiß ich, alternativ
würde sich auch Process Explorer oder ähnliches anbieten. Ich brauche
die Startadresse aber in meinem Projekt.
-
Du weisst ja welche Funktion aufgerufen wird, also kannst du einfach die Adresse dieser Funktion nehmen.
-
Markus567 schrieb:
Da es für private Zwecke ist würde Windows 7 theoretisch reichen.
Wie ich das ganze mit einem Disassembler finde weiß ich, alternativ
würde sich auch Process Explorer oder ähnliches anbieten. Ich brauche
die Startadresse aber in meinem Projekt.Wie bereits erwaehnt wurde: du suchst doch vermutlich einfach die Adresse der Funktion, die bei Threadstart ausgefuehrt wird, oder? Und du weisst ja, wie du die Adresse von 'ner Funktion abfragst, oder?
Alternativ: du willst wissen, wo im Stack der Thread anfaengt. Auch das geht relativ einfach: frag einfach die Adresse der ersten deklarierten Variablen in der neuen Funktion ab.
Oder willst du ganz was anderes wissen?
-
Ich greife auf ein anderes Programm zu und "scanne" alle Threads. Es geht mir
dabei nicht um ein spezifischen Thread. Nun möchte ich z. B. alle Threads, die
es von 0x40000 bis 0x45000 zu finden gibt.
-
Markus567 schrieb:
Ich greife auf ein anderes Programm zu und "scanne" alle Threads. Es geht mir
dabei nicht um ein spezifischen Thread. Nun möchte ich z. B. alle Threads, die
es von 0x40000 bis 0x45000 zu finden gibt.Ich versteh die Frage nicht.... Was meinst du mit "den Thread, den es da zu finden gibt"... meinst du, welche Threads da ihren Stack haben? Oder ihren Stack-Specific Storage? Oder welche sich gerade in Code aufhalten, der in dem Bereich gespeichert ist? .....