ฉันจะดู call stack ของกระบวนการ / thread ที่กำลังรันอยู่ได้อย่างไร?


14

มีคนถามฉันเพื่อรับcall stackหรือstack traceของกระบวนการที่กำลังทำงานอยู่เพื่อที่เขาจะสามารถวิเคราะห์ได้สำหรับฉัน

ฉันจะรับข้อมูลนั้นได้อย่างไร

คำตอบ:


35
  1. รับProcess Explorer

  2. เปิดใช้งานแสดงรายละเอียดสำหรับกระบวนการทั้งหมดจากเมนูไฟล์ :

    ป้อนคำอธิบายรูปภาพที่นี่

  3. ในบานหน้าต่างหลักเลือกกระบวนการที่คุณสนใจ:

    ป้อนคำอธิบายรูปภาพที่นี่

  4. เปิดเมนูบริบท (คลิกขวา) สำหรับกระบวนการที่เลือกและคลิกคุณสมบัติ :

    ป้อนคำอธิบายรูปภาพที่นี่

  5. บนแท็บเธรดคุณจะเห็นรายการเธรดที่กำลังทำงานอยู่ในกระบวนการนั้น:

    ป้อนคำอธิบายรูปภาพที่นี่

  6. เลือกชุดข้อความที่คุณสนใจและคลิกปุ่มกองซ้อน :

    ป้อนคำอธิบายรูปภาพที่นี่

  7. Process Explorer จะแสดง call stack ปัจจุบันสำหรับเธรดที่เลือก:

    ป้อนคำอธิบายรูปภาพที่นี่

สัญลักษณ์

หากการแก้ไขปัญหาของคุณต้องการรายละเอียดเพิ่มเติมก็มักจะมีประโยชน์มากในการโหลดสัญลักษณ์การดีบักลงใน Process Explorer นี่คือวิธี:

  1. หากคุณยังไม่ได้ติดตั้งดีบักเกอร์ของ Windows คุณจะต้องติดตั้งเครื่องมือแก้ไขข้อบกพร่องสำหรับ Windowsก่อน

  2. ใน Process Explorer ให้เปิดกำหนดค่าสัญลักษณ์ ...จากเมนูตัวเลือก :

    ป้อนคำอธิบายรูปภาพที่นี่

  3. หากคุณมีเครื่องมือดีบั๊ก (หรือดีบักเกอร์ Windows อื่น) ติดตั้ง Process Explorer จะค้นหาdbghelp.dllไฟล์โดยอัตโนมัติ มิฉะนั้นให้ตั้งค่าเส้นทางที่ถูกต้องที่นี่

    ป้อนคำอธิบายรูปภาพที่นี่

    เส้นทางสัญลักษณ์ควรมองสิ่งที่ชอบ:

    SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
    

    C:\Symbolsเฉพาะส่วนที่คุณจะต้องการที่จะปรับเป็น นั่นคือตำแหน่งที่สัญลักษณ์การดีบักจะถูกแคช


มีวิธีการถ่ายโอนข้อมูลเธรดทั้งหมดเรียกกองไปยังแฟ้มหรือไม่
bgura
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.