คำถามติดแท็ก debugging

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

15
การดีบักแบบทีละขั้นตอนด้วย IPython
จากสิ่งที่ฉันได้อ่านมีสองวิธีในการดีบักโค้ดใน Python: ด้วยการดีบักแบบดั้งเดิมเช่นหรือpdb ipdbสิ่งนี้รองรับคำสั่งเช่นcfor continue, nfor step-over, sfor step-intoฯลฯ ) แต่คุณไม่มีสิทธิ์เข้าถึงโดยตรงไปยัง IPython shell ซึ่งมีประโยชน์อย่างมากสำหรับการตรวจสอบวัตถุ ใช้ IPythonโดยฝังเปลือก IPython ในรหัสของคุณ คุณสามารถทำได้from ipython import embedจากนั้นใช้embed()รหัสของคุณ เมื่อโปรแกรม / สคริปต์ของคุณพบembed()คำสั่งคุณจะถูกดร็อปเข้าสู่เชลล์ IPython สิ่งนี้จะช่วยให้การตรวจสอบวัตถุและการทดสอบรหัส Python เต็มรูปแบบโดยใช้สินค้า IPython ทั้งหมด อย่างไรก็ตามเมื่อใช้งานembed()คุณจะไม่สามารถทีละขั้นตอนในรหัสอีกต่อไปด้วยแป้นพิมพ์ลัดที่มีประโยชน์ มีวิธีใดบ้างที่จะรวมสิ่งที่ดีที่สุดของทั้งสองโลกเข้าด้วยกัน? กล่าวคือ สามารถ ทีละขั้นตอนผ่านรหัสของคุณด้วยแป้นพิมพ์ลัด pdb / ipdb ที่มีประโยชน์ ในขั้นตอนดังกล่าวใด ๆ (เช่นเกี่ยวกับคำสั่งที่กำหนด) มีการเข้าถึงที่เต็มเปี่ยมIPython เปลือก การดีบัก IPython เหมือนกับใน MATLAB: ตัวอย่างของประเภทของ …
170 python  debugging  emacs  ipython  pdb 

7
ดีบักเกอร์ทำงานอย่างไร
ฉันสงสัยว่าตัวดีบักทำงานอย่างไร เป็นส่วนหนึ่งที่สามารถ 'แนบ' เพื่อเรียกใช้ปฏิบัติการได้แล้ว ฉันเข้าใจว่าคอมไพเลอร์แปลรหัสเป็นภาษาเครื่อง แต่แล้วโปรแกรมดีบั๊กจะรู้ได้อย่างไรว่ามันเชื่อมต่อกับอะไร

8
การดูสตริงที่สมบูรณ์ขณะทำการดีบักใน Eclipse
ในขณะที่การดีบักโค้ด Java สตริงในมุมมอง "ตัวแปร" และ "นิพจน์" แสดงจนถึงความยาวที่แน่นอนหลังจากที่ Eclipse แสดง "... " มีวิธีตรวจสอบสตริงทั้งหมดหรือไม่? (สิ่งนี้ช่วยลดความเจ็บปวดของการเพิ่มคำสั่งการบันทึกสำหรับการดีบักได้ทุกที่)
166 java  eclipse  debugging 

14
วิธีแก้ไขข้อผิดพลาดฮีปเสียหาย
ฉันกำลังดีบักแอปพลิเคชัน C + + แบบหลายเธรดแบบเธรดภายใต้ Visual Studio 2008 ในโอกาสที่สุ่มฉันได้รับข้อผิดพลาด "Windows เรียกจุดพัก ... " ด้วยข้อผิดพลาดที่อาจเกิดจากการทุจริตใน กอง. ข้อผิดพลาดเหล่านี้จะไม่ทำให้แอปพลิเคชันหยุดทำงานทันทีแม้ว่าจะมีความผิดพลาดหลังจากนั้นก็ตาม ปัญหาใหญ่ของข้อผิดพลาดเหล่านี้คือเกิดขึ้นหลังจากความเสียหายเกิดขึ้นจริงซึ่งทำให้ยากต่อการติดตามและตรวจแก้จุดบกพร่องโดยเฉพาะอย่างยิ่งในแอปพลิเคชันแบบมัลติเธรด สิ่งใดที่ทำให้เกิดข้อผิดพลาดเหล่านี้ได้บ้าง ฉันจะดีบักได้อย่างไร ยินดีต้อนรับเคล็ดลับเครื่องมือวิธีการ enlightments ...
166 c++  windows  debugging  heap 


16
สัญลักษณ์การโหลด Visual Studio
ฉันกำลังทำงานในโครงการColdFusionชั่วขณะหนึ่งแล้ว Visual Studio ก็เริ่มมีพฤติกรรมแปลก ๆ สำหรับฉันอย่างน้อยที่สุด ฉันสังเกตว่าเมื่อฉันเริ่มต้นการดีบักมันสร้างโครงการมันเริ่มการปรับใช้และการปรับใช้เสร็จสิ้นและมันเริ่มโหลดสัญลักษณ์สำหรับโครงการของฉัน แต่มันช้ามากและฉันไม่รู้ว่าทำไมจึงเริ่มทำตามขั้นตอนนี้ ฉันจะทำอะไรได้บ้าง การโหลดสัญลักษณ์นี้จำเป็นหรือไม่? ฉันจะปิดการใช้งานได้อย่างไร ในกล่องเครื่องมือ -> ตัวเลือก -> การดีบั๊ก -> สัญลักษณ์ไม่มีการเพิ่มตำแหน่งไฟล์สัญลักษณ์ (.pdb) และฉันชี้ไปที่ไดเรกทอรีการดีบักของโครงการที่ฟิลด์ด้านล่างและฉันตรวจสอบช่องทำเครื่องหมาย "ค้นหาไดเรกทอรีด้านบนเฉพาะเมื่อสัญลักษณ์เป็น .... " ฉันจะตั้งค่ากล่องโต้ตอบนี้เพื่อปิดการโหลดสัญลักษณ์ได้อย่างไร ฉันดูในหน้าต่างโมดูลที่โหลดสัญลักษณ์ แต่มันไม่ได้บอกอะไรฉัน อะไรคือปัญหา?

14
ดีบักเกอร์ Xcode ไม่พิมพ์วัตถุและแสดงว่าไม่มีเมื่อใด
Xcode แสดงข้อผิดพลาดเมื่อพยายามพิมพ์วัตถุด้วยpo <objectName>แต่เพียงหนึ่งโครงการ ข้อผิดพลาด: ไม่สามารถทำให้เป็นจริง struct: ขนาดของตัวแปร <varName> ไม่เห็นด้วยกับขนาดของ ValueObject เกิดข้อผิดพลาดในการดำเนินการไม่สามารถ PrepToExecuteJITExpression ดีบัก Xcode ยังแสดงวัตถุทั้งหมดเป็นnil( selfยกเว้น) เมื่อพวกเขาไม่ได้ ( NSLogแสดงผลลัพธ์ที่ถูกต้องตามที่เห็นในภาพ) ฉันไม่รู้ว่าเกิดอะไรขึ้นกับโครงการ โครงการอื่น ๆ ทำงานได้ดี มีความคิดอะไรที่จะเป็น? (การทำความสะอาดโครงการไม่มีผลกระทบ)

7
Visual Studio: วิธีการแบ่งข้อยกเว้นการจัดการ?
ฉันต้องการให้ Visual Studio หยุดพักเมื่อมีข้อยกเว้นเกิดขึ้น (เช่นฉันไม่ต้องการเห็นข้อความ "โอกาสแรก" ฉันต้องการดีบักข้อยกเว้นจริง) เช่นฉันต้องการให้ดีบักเกอร์แตกที่ข้อยกเว้น: try { System.IO.File.Delete(someFilename); } catch (Exception) { //we really don't care at runtime if the file couldn't be deleted } ฉันเจอหมายเหตุเหล่านี้สำหรับ Visual Studio.NET: 1) ใน VS.NET ไปที่เมนูดีบั๊ก >> "ข้อยกเว้น ... " >> "ข้อยกเว้นรันไทม์ภาษาทั่วไป" >> "ระบบ" และเลือก "System.NullReferenceException" 2) ที่ด้านล่างของกล่องโต้ตอบนั้นจะมีกล่อง "เมื่อข้อยกเว้นถูกโยน:" ให้เลือก "บุกเข้าไปในดีบั๊ก" …

18
เคล็ดลับการดีบัก Python [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ อะไรคือเคล็ดลับที่ดีที่สุดในการดีบัก Python โปรดอย่าเพิ่งระบุบั๊กที่เฉพาะเจาะจงโดยไม่บอกว่ามันสามารถทำอะไรได้บ้าง ที่เกี่ยวข้อง มีวิธีใดที่ดีในการทำให้รหัส Python ของฉันทำงานเป็นครั้งแรก - สิ่งนี้อธิบายถึงการลดข้อผิดพลาดให้น้อยที่สุด
164 python  debugging 

3
ฉันจะตั้งค่าเบรกพอยต์แบบมีเงื่อนไขใน gdb ได้อย่างไรเมื่อ char * x ชี้ไปยังสตริงที่มีค่าเท่ากับ "hello"
ฉันสามารถระบุว่าฉันต้องการให้ gdb แตกที่บรรทัด x เมื่อchar* xชี้ไปที่สตริงที่มีค่าเท่ากับ"hello"หรือไม่ ถ้าใช่เป็นอย่างไร

13
วิธีการดีบักตัวแปรใน Smarty เช่นเดียวกับใน PHP var_dump ()
ฉันมีตัวแปรภายในเทมเพลตและฉันไม่รู้ว่าฉันกำหนดไว้ที่ไหน ฉันจำเป็นต้องรู้ว่าอะไรอยู่ในตัวแปรเฉพาะ เช่นบอกว่าฉันมีตัวแปรใน Smarty memberเรียกว่า ฉันลองด้วย{debug}แต่มันใช้งานไม่ได้และไม่มีป๊อปอัปปรากฏขึ้น ฉันจะส่งออก / แก้จุดบกพร่องตัวแปร smarty โดยใช้สิ่งที่ต้องการvar_dump()ภายในแม่แบบได้อย่างไร

10
มีวิธีการถ่ายโอนข้อมูลกองติดตามโดยไม่ทิ้งข้อยกเว้นใน java?
ฉันกำลังคิดที่จะสร้างเครื่องมือดีบั๊กสำหรับแอปพลิเคชัน Java ของฉัน ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะได้รับการติดตามแบบสแต็กเหมือนException.printStackTrace()แต่ไม่มีข้อผิดพลาดเกิดขึ้นจริงหรือไม่ เป้าหมายของฉันคือการทิ้งสแต็กเพื่อดูว่าใครเป็นผู้โทร

6
__FILE__, __LINE__ และ __FUNCTION__ การใช้งานใน C ++
ทะนงว่าคุณ c ++ คอมไพเลอร์สนับสนุนพวกเขาจะมีเหตุผลใด ๆ โดยเฉพาะอย่างยิ่งไม่ได้กับการใช้งาน__FILE__, __LINE__และ__FUNCTION__สำหรับการบันทึกและวัตถุประสงค์ในการแก้จุดบกพร่อง? ฉันมักเกี่ยวข้องกับการให้ข้อมูลที่ทำให้ผู้ใช้เข้าใจผิดเช่นการรายงานหมายเลขบรรทัดหรือฟังก์ชั่นที่ไม่ถูกต้องอันเป็นผลมาจากการปรับให้เหมาะสม โดยทั่วไปฉันสามารถไว้วางใจ__FILE__, __LINE__และ__FUNCTION__จะเสมอทำสิ่งที่ถูกต้อง?

16
ทำไม Android Studio ถึงบอกว่า“ กำลังรอการดีบักเกอร์” หากฉันไม่ได้ทำการดีบั๊ก
ฉันทำงานกับ Android Studio ตั้งแต่เมื่อคืนเมื่อฉันเรียกใช้โครงการของฉันบนอุปกรณ์ของฉันปรากฏข้อความ "กำลังรอการดีบักเกอร์" มันเป็นพฤติกรรมที่แปลกมากเพราะฉันไม่ได้ดีบั๊กแอปพลิเคชัน ฉันพยายามถอนการติดตั้งแอปพลิเคชันออกจากอุปกรณ์ของฉันแล้วกด Run บน Android Studio ข้อความปรากฏขึ้นอีกครั้ง ฉันพยายามรีสตาร์ท Android Studio ข้อความปรากฏขึ้นอีกครั้ง วิธีเดียวในการติดตั้งแอปพลิเคชันบนโทรศัพท์ของฉันอย่างถูกต้องคือกด "ดีบั๊ก" ข้อความจะปรากฏขึ้น แต่ถูกปิดโดยอัตโนมัติ จากนั้นแอปพลิเคชันก็ใช้ได้ดี ฉันได้ลองด้วย <application android:debuggable="false" /> ... และยังปรากฏข้อความ LogCat พูดว่า: E/InputDispatcher﹕ channel ~ Channel is unrecoverably broken and will be disposed! E/Launcher﹕ Error finding setting, default accessibility to not found: accessibility_enabled …

6
วิธีการใช้งานคำสั่งหลายบรรทัดภายในดีบักเกอร์ของ Python (PDB)
ดังนั้นฉันจึงเรียกใช้สคริปต์ Python ที่ฉันเรียกดีบักเกอร์ Python, PDB โดยการเขียน: import ipdb; ipdb.set_trace() (PDB เวอร์ชัน iPython แต่สำหรับเรื่องที่ฉันไม่คิดว่ามันสร้างความแตกต่างฉันใช้มันเพื่อผลสีเท่านั้น) ตอนนี้เมื่อฉันไปที่ debugger ฉันต้องการที่จะดำเนินการคำสั่งหลายบรรทัดเช่นถ้าประโยคหรือสำหรับลูป แต่ทันทีที่ฉันพิมพ์ if condition: และกดปุ่มย้อนกลับฉันได้รับข้อความแสดงข้อผิดพลาด *** SyntaxError: invalid syntax (<stdin>, line 1) หนึ่งสามารถดำเนินการคำสั่งหลายบรรทัดภายใน PDB ได้อย่างไร ถ้าเป็นไปไม่ได้มีวิธีแก้ไขปัญหานี้ยังคงดำเนินการประโยคถ้าหรือห่วง?

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