ฉันจะค้นหาการติดตามสแต็กใน Visual Studio ได้อย่างไร


คำตอบ:


277

ขณะทำการดีบั๊กให้ไปที่Debug -> Windows -> Call Stack


38
==> "ขณะทำการดีบั๊ก" <==
prabhakaran

2
สแตกการโทรใน VS 2013 จะไม่แสดงสิ่งใดที่มีประโยชน์ มันเป็นการดีที่จะแสดงผู้โทรเข้าของวัตถุที่ส่งข้อยกเว้นที่ไม่สามารถจัดการได้ มีตัวเลือกที่ซ่อนอยู่เพื่อให้มีประโยชน์หรือไม่ บางทีคุณสามารถขยายคำตอบเพื่อให้ตัวอย่าง
James

1
ชอบที่คนอื่น ๆ ในกระทู้อื่น ๆ คล้ายกับเรื่องนี้พลาดส่วนสำคัญที่สุดของคำตอบ
AvetisG

ดีมากขอบคุณ! แม้ในขณะที่ใช้ VS CE 2015 + IE9 และการดีบัก JavaScript trace stack ของ IE9!
Alexey Volodko

130

ในขณะที่การแก้จุดบกพร่อง , เมื่อคุณกดแบ่งจุด

CTRL+ ALT+C

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


16
+1 สำหรับรูปภาพ = D (ฉันชอบเมื่อมีคนบังคับให้สร้างภาพหน้าจอ)
Michel Ayres

39

ปุ่มทางลัดเริ่มต้นคือ Ctrl-Alt-C


16
สิ่งสำคัญคือคุณจะต้องอยู่ในโหมด 'ดีบั๊ก' เพื่อดูหน้าต่างสแต็กการโทร
dss539

1
@ dss539 ฉันคิดว่าคุณได้แนบ debugger แล้วก็สามารถ debug หรือ release build ได้ สิ่งสำคัญคือคุณมีสัญลักษณ์เพียงพอที่จะโหลดสำหรับเซสชันการดีบักมิฉะนั้นคุณจะได้รับ callstacks ที่ทำให้เข้าใจผิด / ขยะ
Chris O

@ChrisO - ใช่ฉันหมายความว่า Visual Studio ควรอยู่ในสถานะ 'แก้ไขจุดบกพร่อง' ขออภัยฉันสามารถดูว่าถ้อยคำต้นฉบับของฉันออกจากห้องสำหรับการตีความที่ผิด
dss539

16

คุณหมายถึงการหาร่องรอยสแต็คของสถานที่ยกเว้นโยน ? นั่นคือการดีบัก / ข้อยกเว้นหรือดีกว่า - Ctrl-Alt-E ตั้งค่าตัวกรองสำหรับข้อยกเว้นที่คุณต้องการเจาะ

มีแม้กระทั่งวิธีการสร้างสแต็คโยนหลังจากข้อยกเว้นถูกจับได้ แต่มันเป็นเรื่องจริงที่ไม่พึงประสงค์ ง่ายกว่ามากที่จะตั้งตัวแบ่งในการขว้าง


5

การใช้หน้าต่าง Call Stack

ในการเปิดหน้าต่าง Call Stack ใน Visual Studio จากเมนู Debug ให้เลือก Windows> Call Stack หากต้องการตั้งค่าบริบทโลคัลเป็นแถวเฉพาะในจอแสดงผลการติดตามสแต็กให้ดับเบิลคลิกที่คอลัมน์แรกของแถว

http://msdn.microsoft.com/en-us/library/windows/hardware/hh439516(v=vs.85).aspx


1

พิจารณาสิ่งนี้เป็นการอัปเดตปัจจุบัน (Windows 10 (เวอร์ชัน 1803) และ Visual Studio 2017): ฉันไม่สามารถดูหน้าต่างติดตามสแต็กและไม่พบรายการตัวเลือก / เมนูเพื่อดู ในการตรวจสอบเพิ่มเติมดูเหมือนว่าคุณสมบัตินี้ไม่สามารถใช้ได้ใน Windows 10 สำหรับข้อมูลเพิ่มเติมโปรดดูที่:

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/viewing-the-call-stack-in-visual-studio

คัดลอกจากลิงค์ด้านบน: "คุณสมบัตินี้ไม่สามารถใช้งานได้ใน Windows 10, รุ่น 1507 และรุ่นใหม่กว่าของ WDK"


ดูเหมือนจะแปลกจริงๆ ใครบ้างมีความคิดวิธีการอื่นในการทำเช่นนี้ในรุ่น 1507 และใหม่กว่า? คุณลักษณะนี้มีประโยชน์มาก ...
nimble_ninja

0

สำหรับ Visual Studio 2019 ทางลัด(ในขณะที่การดีบักและหยุดที่เบรกพอยต์)คือ:

Ctrl+ Alt+ Cและตอนนี้คุณสามารถใช้Ctrl+L

ภาพหน้าจอค่อนข้างเก่า นี่คือหนึ่งสำหรับ Visual Studio 2019 (ภายใต้เมนู debug):

Visual Studio 2019 ตัวเลือกเมนูสแตกการโทร

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