Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   wo ist tdstrp32? (https://www.delphipraxis.net/209488-wo-ist-tdstrp32.html)

himitsu 13. Dez 2021 14:57

wo ist tdstrp32?
 
Moin,

in einer Delphi 11-Installation finde ich die tdstrp32.exe im BDSBIN,
aber in einer anderen Installattion sehe ich sie nicht,
sowie auch nicht im Delphi 10.4 oder XE.

Teilweise soll sie auch schon in C:\Windows\System32 gefunden worden sein, aber Emba versucht ja inzwischen sich da rauszuhalten.
Und hieß mal tdstrip, damals im Turbo Pascal (16 Bit).



Die StripTDS als Alternative ist bissl ungünstig.
TestComplete nicht auf jedem Rechner installiert und ich glaub fast nicht, dass ich die EXE lizenzrechnlich auf andere PCs kopieren dürfte.


[edit]
Ach ja, ich will die Debuginfos (TD32) in den EXE/DLL/BPL drin und nicht als externe Debuginfos (*.TDS) generieren lassen.
Brauch die TDS nur kurz, um daraus die PDB generieren zu können, da Delphi leider zu doof ist, PDB oder zumindestens DBG selbst anzubieten (oder CodeView im LLVM für Mac),
um dann zur Laufzeit die Stacktrace-Funktionen des OS nutzen zu können.

mmw 13. Dez 2021 19:14

AW: wo ist tdstrp32?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

bei 10.4 Update 2 steht sie auch im Bin- Verzeichnis. Zumindestens bei mir.

evtl. liegt's hier dran.

"or the Turbo Debugger 32-bit Symbol Table Stripper utility that is shipped along with Borland Developer Studio 2006 (the utility is installed with Borland C++Builder 2006 and has the following path: <Program Files>\Borland\BDS\4.0\Bin\tdstrp32.exe)."

https://support.smartbear.com/testco...ebug-info.html

Gruß

himitsu 15. Dez 2021 01:43

AW: wo ist tdstrp32?
 
Jo, bei einer Installation ist diese Datei vorhanden und bei 3 Anderen fehlt sie.
Ist schon bissl unpraktisch, wenn man Sie gebrauchen würde.


Der erste Versuch sieht erstmal OK aus. Ob die entstandene TDS wirklich korrekt ist und vom tds2pdb verwendet werden kann, müsste ich später noch prüfen.
Wenn ich die Sektion mit 7-Zip raushole, dann sind am Anfang 32 Byte zuviel und am Ende scheit es zu stimmen.
Code:
"C:\Program Files (x86)\7-Zip\7z.exe" e -so Test.exe .debug > Test.exe.tmp
if not errorlevel 1 "C:\Program Files\Git\bin\bash.exe" -c "dd bs=32 skip=1 if=Test.exe.tmp of=Test.exe.tds"
del Test.exe.tmp
Ganz genau kann ich's aber nicht vergleichen, da bei zwei Kompilierungen unterschiedliche Debuginfos entstehen und sich zwischendrin paar viele Bytes unterscheiden.
Scheint jedenfalls so zu sein, wenn ich einmal "mit DebugInfos" kompiliere, dann nochmal "mit Debuginfos in .TDS" und dann meinen Export damit vergleiche.


PS: Mit map2dbg funktioniert WalkStack ganz gut, außer dass dort die Zeilennummern fehlen, aber dafür braucht man dort keine TDS.

himitsu 15. Dez 2021 23:43

AW: wo ist tdstrp32?
 
Also, das mit 7-Zip und entfernen der ersten 32 Byte stimmt so.

Bei tdstrp32 und StripTDS kommt das "gleiche" Ergebnis raus, allerdings löschen die auch immer die Sektion in der EXE, welche ich eigentlich behalten will.
So könnte man aber auch gleich direkt vom Delphi als Debuginfos als TDS speichern lassen, ohne dass sie in der EXE landen und hätte das "selbe" Ergebnis.

Da es tdstrp32 mit Dateinamen sehr genau nimmt und scheinbar unbedingt exe/dll/bpl als Endung vorhanden sein muß,
geht es so nicht
Code:
copy Test.exe Test.tmp
tdstrp32.exe -s Test.tmp
del Test.tmp
aber wenigstens so
Code:
copy Test.exe Test.exe.exe
tdstrp32.exe -s Test.exe.exe
del Test.exe.exe
ren Test.exe.tds Test.tds


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 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