เป้าหมายของฉันคือ:
- ให้เธรดที่ถูกระงับในโปรแกรม Windows 32 หรือ 64 บิตที่คอมไพล์เดลฟีเพื่อเดินสแต็ก (doable)
- กำหนดรายการสแต็กเพื่อแจกแจงตัวแปรโลคัลในแต่ละวิธีและค่าของตัวแปร นั่นคืออย่างน้อยที่สุดให้ค้นหาที่อยู่และประเภทของพวกเขา (จำนวนเต็ม 32/64 / ลงนาม / ไม่ได้ลงนาม, สตริง, ลอย, บันทึก, คลาส ... ) ชุดค่าผสมที่สามารถใช้เพื่อค้นหาค่าได้
ข้อแรกใช้ได้ดีและเป็นคำถามที่สองเกี่ยวกับคำถามนี้ ในระดับสูงคุณจะแจกแจงตัวแปรโลคัลจากรายการสแต็กใน Delphi ได้อย่างไร
ในระดับต่ำนี่คือสิ่งที่ฉันกำลังตรวจสอบ:
RTTI:ไม่แสดงรายการข้อมูลประเภทนี้เกี่ยวกับวิธีการ นี่ไม่ใช่สิ่งที่ฉันเคยคิดว่าเป็นตัวเลือกที่สมจริง แต่มีรายชื่ออยู่ที่นี่
ข้อมูลการดีบัก:กำลังโหลดข้อมูลการดีบักที่สร้างขึ้นสำหรับรุ่นดีบัก
- ไฟล์แผนที่: แม้แต่ไฟล์แผนที่โดยละเอียด (ไฟล์รูปแบบข้อความ! เปิดไฟล์หนึ่งแล้วดู) ไม่มีข้อมูลตัวแปรในเครื่อง โดยทั่วไปจะเป็นรายการที่อยู่และหมายเลขบรรทัดไฟล์ต้นฉบับ เหมาะสำหรับการระบุแอดเดรสกับไฟล์และความสัมพันธ์ของเส้นเช่นจุดสีน้ำเงินในรางน้ำ ไม่ดีสำหรับข้อมูลรายละเอียดเพิ่มเติม
- ข้อมูลการดีบักระยะไกล (ไฟล์ RSM) - ไม่มีข้อมูลที่ทราบเกี่ยวกับเนื้อหาหรือรูปแบบ
- ไฟล์ TD32 / TDS:สายงานวิจัยปัจจุบันของฉัน มีสัญลักษณ์ทั่วโลกและในท้องถิ่นท่ามกลางข้อมูลอื่น ๆ มากมาย
ปัญหาที่ฉันพบคือ:
- ไม่มีเอกสารเกี่ยวกับรูปแบบไฟล์ TD32 (ที่ฉันสามารถหาได้)
- ความรู้ส่วนใหญ่ของฉันเกี่ยวกับพวกเขามาจากรหัส Jedi JCL ที่ใช้พวกเขา (JclTD32.pas) และฉันไม่แน่ใจว่าจะใช้รหัสนั้นอย่างไรหรือว่าโครงสร้างต่างๆมีมากมายเพียงพอที่จะแสดงตัวแทนในพื้นที่หรือไม่ ฉันค่อนข้างมั่นใจว่ามันจะจัดการกับสัญลักษณ์ระดับโลกได้ แต่ฉันไม่แน่ใจเกี่ยวกับท้องถิ่นมาก มีค่าคงที่หลากหลายที่กำหนดไว้และไม่มีเอกสารประกอบสำหรับรูปแบบหากต้องการอ่านความหมายฉันก็เดาไม่ออก อย่างไรก็ตามค่าคงที่และชื่อเหล่านั้นต้องมาจากที่ไหนสักแห่ง
- แหล่งที่ฉันสามารถค้นหาได้โดยใช้ข้อมูล TDSไม่โหลดหรือจัดการกับสัญลักษณ์ในเครื่อง
หากนี่เป็นแนวทางที่ถูกต้องคำถามนี้จะกลายเป็น "มีเอกสารสำหรับรูปแบบไฟล์ TDS / TD32 หรือไม่และมีตัวอย่างโค้ดใดบ้างที่โหลดตัวแปรภายในเครื่อง"
ตัวอย่างโค้ดไม่จำเป็น แต่อาจมีประโยชน์มากแม้ว่าจะน้อยมากก็ตาม