Hi!
Zitat von
Delphi-Laie:
mein Bugreport wurde etwas überraschend geschlossen, allerdings artete es dort zugegebenermaßen auch immer mehr zur Diskussion aus.
1. wurde er nicht "geschlossen", sondern auf "resolved" gesetzt (schließen musst du ihn noch). Du könntest ihn wieder öffnen, aber das bringt aus meiner Sicht nichts, da das Problem ja nun nicht mehr im FPC Code liegt
2. das Thema ist aus Sicht des Bugreports erledigt (denn es funktioniert ja jetzt prinzipiell, wenn ich dass deiner Antwort dort richtig entnommen habe) und jede weitere Diskussion sollte nicht im Bugtracker stattfinden
Zitat von
Delphi-Laie:
1. Die Modulenumeration funktioniert bei den Systemprozessen (Ring 0 / Kernelmodus) deshalb nicht, weil das (anforderbare) Privileg dazu fehlt.
Jupp, das kann dir unter Windows leicht mal passieren und ist der Normalfall, wenn man nicht als Administrator unterwegs ist (wie es im Konzept von NT ja eigentlich gedacht war... *seufz*).
Zitat von
Delphi-Laie:
2. explorer.exe und cmd.exe sind 64-Bit-Prozesse, während andere, die über ihre Module bereitwillig auskunfteten, 32-Bit-Prozesse waren. Es war wohl unter der Würde der 64-Bit-Prozesse, einem anfragenden 32-Bit-Prozeß Auskunft über die Module zu geben (salopp formuliert).
Ich würde nicht behaupten, dass dies "unter der Würde" der Prozesse ist, sondern vielmehr eine Designentscheidung von Microsoft (schließlich geben dir nicht die Prozesse Auskunft über sich, sondern das Betriebssystem gibt dir die Auskunft und dieses hat die volle Kontrolle über die Informationen). Es ist wahrscheinlich zu riskant einem 32-Bit Prozess auf diese Weise Zugang zu den 64-Bit Modulen zu gewähren (schließlich kann ein 32-Bit Prozess nicht mit 64-Bit virtuellem Speicher umgehen, etc).
Zitat von
Delphi-Laie:
Wenn nun Lazarus noch standardmäßig mit der die tlhelp64-
Unit oder mit einer angepaßten jwatl32help (jwatl64help?!) aufgebohrt würde, wäre es optimal, und solche Bugreports wie meiner wären dann überflüssig.
1. jwatlhelp32 ist Teil von Free Pascal (genauer:
FCL), nicht Lazarus. Es gibt also keinen Grund Lazarus "aufzubohren".
2. Der Bug wurde gefixt und wird eventuell Teil des nächsten Releases werden (eventuell werde ich bitten den Fix in FPC 2.4.1 zu mergen), es besteht also gar kein Bedarf eine tlhelp64 einzuführen. Zudem heißt der C-Header auch in Win64 noch tlhelp32.h
3. Du hast einen Fehler in Free Pascal Code entdeckt und damit ist es nur gut und recht, wenn du diesen berichtest, selbst wenn ein ähnlicher Report bereits vorhanden und in der Entwicklerversion bereits gefixt wurde. Ganz nach dem Prinzip "doppelt hält besser". Und selbst wenn man Lazarus oder Free Pascal mit einer hypothetischen tlhelp64 ausstatten würde, so könnte auch diese noch Bugs enthalten, die berichtet werden wollen.
Wenn du noch weiter Probleme mit der tlhelp32 frag also bitte hier weiter (oder in einem neuen Thread, je nachdem was den Mods lieber ist
).
Gruß,
Sven