คำถามติดแท็ก stack-trace

รายงานสแต็กเฟรมที่แอ็คทีฟ ณ เวลาใดเวลาหนึ่งระหว่างการดำเนินการของโปรแกรม


22
ฉันจะรับการติดตามสแต็กปัจจุบันใน Java ได้อย่างไร
ฉันจะได้รับในปัจจุบันวิธีการกองติดตามใน Java เช่นวิธีการใน .NET ที่คุณสามารถทำได้Environment.StackTrace? ฉันพบThread.dumpStack()แต่มันไม่ใช่สิ่งที่ฉันต้องการ - ฉันต้องการรับ stack trace กลับไม่ใช่พิมพ์ออกมา
1001 stack-trace  java 

30
ฉันจะรับข้อมูลความผิดพลาดจากแอปพลิเคชัน Android ของฉันได้อย่างไร
ฉันจะรับข้อมูลความขัดข้อง (อย่างน้อยมีร่องรอยสแต็ก) จากแอปพลิเคชัน Android ของฉันได้อย่างไร อย่างน้อยเมื่อทำงานบนอุปกรณ์ของฉันเองที่ถูกดึงด้วยสายเคเบิล แต่ควรนึกถึงแอปพลิเคชันของฉันที่ทำงานบนอุปกรณ์เพื่อให้ฉันสามารถปรับปรุงและทำให้มันแข็งแกร่งขึ้น

7
การติดตามสแต็กคืออะไรและฉันจะใช้เพื่อแก้ไขข้อผิดพลาดแอปพลิเคชันของฉันได้อย่างไร
Наэтотвопросестьответына กองมากเกินнарусском : Чтотакоеสแต็คร่องรอยикаксегопомощьюнаходитьошибкипри разработкеприложений ? บางครั้งเมื่อฉันเรียกใช้แอปพลิเคชันของฉันมันทำให้ฉันมีข้อผิดพลาดที่ดูเหมือนว่า: Exception in thread "main" java.lang.NullPointerException at com.example.myproject.Book.getTitle(Book.java:16) at com.example.myproject.Author.getBookTitles(Author.java:25) at com.example.myproject.Bootstrap.main(Bootstrap.java:14) ผู้คนอ้างถึงสิ่งนี้ว่าเป็น "การติดตามสแต็ก" การติดตามสแต็กคืออะไร มีอะไรบอกฉันได้บ้างเกี่ยวกับข้อผิดพลาดที่เกิดขึ้นในโปรแกรมของฉัน เกี่ยวกับคำถามนี้ - บ่อยครั้งที่ฉันเห็นคำถามเกิดขึ้นโดยที่โปรแกรมเมอร์มือใหม่กำลัง "รับข้อผิดพลาด" และพวกเขาก็วางสแต็กการติดตามและบล็อกโค้ดแบบสุ่มโดยไม่เข้าใจว่าสแต็กการติดตามคืออะไร คำถามนี้มีวัตถุประสงค์เพื่อเป็นข้อมูลอ้างอิงสำหรับโปรแกรมเมอร์มือใหม่ที่อาจต้องการความช่วยเหลือในการทำความเข้าใจคุณค่าของการติดตามสแต็ก

28
วิธีสร้าง stacktrace โดยอัตโนมัติเมื่อโปรแกรมของฉันขัดข้อง
ฉันกำลังทำงานบน Linux ด้วยคอมไพเลอร์ GCC เมื่อโปรแกรม C ++ ของฉันล่มฉันต้องการให้สแต็คสร้างเทรซ โปรแกรมของฉันถูกเรียกใช้โดยผู้ใช้หลายคนและยังทำงานบน Linux, Windows และ Macintosh (ทุกรุ่นรวบรวมโดยใช้gcc) ฉันต้องการให้โปรแกรมของฉันสามารถสร้างการติดตามสแต็กเมื่อเกิดข้อผิดพลาดและในครั้งต่อไปที่ผู้ใช้เรียกใช้มันจะถามพวกเขาว่าการส่งสแต็กติดตามมาให้ฉันได้หรือไม่ดังนั้นฉันจึงสามารถติดตามปัญหาได้ ฉันสามารถจัดการการส่งข้อมูลให้ฉันได้ แต่ฉันไม่รู้วิธีสร้างสตริงการติดตาม ความคิดใด ๆ
590 c++  gcc  crash  stack-trace  assert 

24
ฉันจะได้รับการติดตาม JavaScript แบบกองซ้อนได้อย่างไรเมื่อฉันส่งข้อยกเว้น?
หากฉันโยนข้อยกเว้น JavaScript ด้วยตนเอง (เช่นthrow "AArrggg") ฉันจะรับการติดตามสแต็กได้อย่างไร (ใน Firebug หรืออย่างอื่น) ตอนนี้ฉันเพิ่งได้รับข้อความ แก้ไข : ตามที่หลายคนด้านล่างโพสต์เป็นไปได้ที่จะได้รับการติดตามสแต็กสำหรับข้อยกเว้น JavaScriptแต่ฉันต้องการได้รับการติดตามสแต็กสำหรับข้อยกเว้นของฉัน ตัวอย่างเช่น: function foo() { bar(2); } function bar(n) { if (n < 2) throw "Oh no! 'n' is too small!" bar(n-1); } เมื่อfooถูกเรียกว่าผมต้องการที่จะได้รับการกองติดตามซึ่งรวมถึงสายไปfoo, ,barbar


19
ฉันจะค้นหาวิธีที่เรียกว่าวิธีการปัจจุบันได้อย่างไร
เมื่อเข้าสู่ระบบใน C # ฉันจะเรียนรู้ชื่อของวิธีการที่เรียกว่าวิธีการในปัจจุบันได้อย่างไร ฉันรู้ทุกอย่างเกี่ยวกับSystem.Reflection.MethodBase.GetCurrentMethod()แต่ฉันต้องการไปหนึ่งขั้นตอนด้านล่างนี้ในกองติดตาม ฉันได้พิจารณาการแยกการติดตามสแต็ก แต่ฉันหวังว่าจะค้นหาวิธีที่ชัดเจนยิ่งขึ้นซึ่งเป็นวิธีที่ชัดเจนAssembly.GetCallingAssembly()กว่า

11
รับคำอธิบายข้อยกเว้นและการติดตามสแต็กซึ่งทำให้เกิดข้อยกเว้นทั้งหมดเป็นสตริง
ฉันเห็นโพสต์มากมายเกี่ยวกับการติดตามสแต็กและข้อยกเว้นใน Python แต่ไม่พบสิ่งที่ฉันต้องการ ฉันมีรหัส Python 2.7 จำนวนหนึ่งซึ่งอาจทำให้เกิดข้อยกเว้น ฉันต้องการที่จะจับมันและกำหนดให้กับสตริงคำอธิบายแบบเต็มและการติดตามสแต็กที่ทำให้เกิดข้อผิดพลาด (เพียงแค่ทั้งหมดที่เราใช้เพื่อดูบนคอนโซล) ฉันต้องการสตริงนี้เพื่อพิมพ์ไปยังกล่องข้อความใน GUI บางสิ่งเช่นนี้ try: method_that_can_raise_an_exception(params) except Exception as e: print_to_textbox(complete_exception_description(e)) ปัญหาคือฟังก์ชั่นcomplete_exception_descriptionคืออะไร?


6
วิธีการพิมพ์ Stack Trace ปัจจุบันใน. NET โดยไม่มีข้อยกเว้น?
ฉันมีรหัส C # ปกติ ผมไม่มีข้อยกเว้น ฉันต้องการบันทึกการติดตามสแต็กปัจจุบันโดยทางโปรแกรมเพื่อวัตถุประสงค์ในการดีบัก ตัวอย่าง: public void executeMethod() { logStackTrace(); method(); }

27
แสดงการติดตามสแต็กจากแอ็พพลิเคชัน Python ที่กำลังรัน
ฉันมีแอพพลิเคชั่น Python ตัวนี้ติดอยู่เป็นครั้งคราวและหาที่ไหนไม่เจอ มีวิธีใดที่จะส่งสัญญาณให้ล่าม Python เพื่อแสดงรหัสที่แน่นอนที่ใช้งานอยู่ stacktrace แบบ on-the-fly บางอย่าง? คำถามที่เกี่ยวข้อง: พิมพ์ call stack ปัจจุบันจากวิธีการในรหัส Python ตรวจสอบสิ่งที่กระบวนการทำงานกำลังทำอยู่: พิมพ์การติดตามสแต็กของโปรแกรม Python ที่ไม่มีเอกสาร



4
เมื่อฉันตรวจพบข้อยกเว้นฉันจะได้รับประเภทไฟล์และหมายเลขบรรทัดได้อย่างไร
รับข้อยกเว้นที่จะพิมพ์ดังนี้: Traceback (most recent call last): File "c:/tmp.py", line 1, in <module> 4 / 0 ZeroDivisionError: integer division or modulo by zero ฉันต้องการจัดรูปแบบเป็น: ZeroDivisonError, tmp.py, 1

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