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

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

6
ปิดใช้งานการยืนยันใน Python
Наэтотвопросестьответына กองมากเกินнарусском : Естьливозможностьотключитьยืนยัน? ฉันจะปิดใช้งานการยืนยันใน Python ได้อย่างไร นั่นคือถ้าการยืนยันล้มเหลวฉันไม่ต้องการให้มันโยนAssertionErrorแต่จะทำต่อไป ฉันจะทำอย่างไร?

11
ไม่พบไฟล์. cs สำหรับการดีบักซอร์สโค้ด. NET
ฉันพยายามตั้งค่าการดีบักซอร์ส. NET โดยทำตามคำแนะนำแบบ MDSNนี้ Symbol cache ได้รับการตั้งค่าอย่างถูกต้องเช่นเดียวกับการตรวจสอบ 'Enable .NET Framework source Stepping' แต่ต่อมาเมื่อใดก็ตามที่ฉันต้องการเข้าสู่รหัส. NET ฉันจะได้รับแจ้งให้ระบุตำแหน่งของไฟล์ cs ที่เกี่ยวข้อง เกิดข้อผิดพลาดเป็น และYou need to find <filename>.cs to view the source for the current call stack frameThe debugger could not locate the source file <filename>.cs ฉันได้รับเสนอให้เรียกดูไฟล์ (แต่ไม่มี) หรือดูการแยกชิ้นส่วน (แต่ฉันไม่ต้องการอย่างนั้น) จะเข้าสู่ซอร์สโค้ด. NET ได้อย่างไร?
93 c#  .net  debugging 

4
แนวทางปฏิบัติที่ดีที่สุดกับ Nuget: Debug or Release?
ตอนนี้ฉันจัดแพ็คเกจบิวด์รีลีสด้วย Nuget สำหรับบิวด์อย่างเป็นทางการไปยัง nuget.org แต่ฉันแพ็กเกจการดีบักบิวด์ด้วย Nuget สำหรับซอร์สสัญลักษณ์ที่ส่งไปยัง Symbolource.org แก้ไข: (Jon Skeet มีอคติจากการพัฒนา Noda Time) ตอนนี้ NuGet รองรับการส่งไปยังทั้งแกลเลอรีNuGet และ Symbolource.org (หรือเซิร์ฟเวอร์ที่คล้ายกัน) ตามที่บันทึกไว้ น่าเสียดายที่มีข้อกำหนดที่ขัดแย้งกันสองประการที่นี่: เมื่อใช้ไลบรารีโดยไม่จำเป็นต้องมีการดีบักใด ๆ คุณต้องการสร้างรุ่น นั่นคือสิ่งที่รุ่นสร้างมีไว้สำหรับหลังจากทั้งหมด เมื่อทำการดีบักลงในไลบรารีเพื่อวัตถุประสงค์ในการวินิจฉัยคุณต้องการสร้างดีบักโดยปิดใช้งานการเพิ่มประสิทธิภาพที่เหมาะสมทั้งหมด นั่นคือสิ่งที่สร้างดีบักมีไว้สำหรับหลังจากทั้งหมด นั่นจะดี แต่ NuGet ไม่ (เท่าที่ฉันบอกได้) อนุญาตให้เผยแพร่ทั้งรุ่นและรุ่นแก้ไขข้อบกพร่องในรูปแบบที่เป็นประโยชน์ในแพ็คเกจเดียวกัน ดังนั้นตัวเลือกคือ: แจกจ่ายบิวด์การแก้ไขข้อบกพร่องให้ทุกคน (ดังที่แสดงในตัวอย่างในเอกสาร) และใช้งานกับ Hit ขนาดและประสิทธิภาพใด ๆ แจกจ่ายรุ่นสร้างให้กับทุกคนและใช้ชีวิตด้วยประสบการณ์การดีบักที่บกพร่องเล็กน้อย ใช้นโยบายการแจกจ่ายที่ซับซ้อนมากโดยอาจให้แพ็คเกจรีลีสและดีบักแยกต่างหาก สองคนแรกเดือดลงไปถึงผลของความแตกต่างระหว่างการดีบักและการสร้างรุ่น ... แม้ว่าจะเป็นที่น่าสังเกตว่ายังมีความแตกต่างอย่างมากระหว่างการต้องการก้าวเข้าสู่รหัสของไลบรารีเพราะคุณต้องการตรวจสอบพฤติกรรมบางอย่างและต้องการ เพื่อดีบักโค้ดของไลบรารีเพราะคุณเชื่อว่าคุณพบข้อบกพร่อง ในกรณีที่สองอาจเป็นการดีกว่าที่จะรับโค้ดของไลบรารีเป็นโซลูชัน Visual Studioและดีบักด้วยวิธีนี้ดังนั้นฉันจึงไม่ต้องใส่ใจกับสถานการณ์นั้นมากเกินไป …

5
จะดีบัก JavaScript ที่โหลดแบบไดนามิก (ด้วย jQuery) ในตัวดีบักเกอร์ของเบราว์เซอร์ได้อย่างไร?
สคริปต์ที่เพิ่มแบบไดนามิกจะไม่ปรากฏในส่วนสคริปต์ของดีบักเกอร์ของเบราว์เซอร์ คำอธิบาย: ฉันจำเป็นต้องใช้และได้ใช้ if( someCondition == true ){ $.getScript("myScirpt.js", function() { alert('Load Complete'); myFunction(); }); } เพื่อให้ myScript.js สามารถโหลดได้แบบไดนามิกเมื่อตรงตามเงื่อนไขบางอย่าง ... และ myFunction สามารถเรียกได้หลังจากโหลดสคริปต์ทั้งหมดแล้วเท่านั้น ... แต่เบราว์เซอร์ไม่แสดง myScript.js ที่โหลดแบบไดนามิกในส่วนสคริปต์ของดีบักเกอร์ มีวิธีอื่นอีกหรือไม่เพื่อให้บรรลุเป้าหมายทั้งหมดซึ่งจะทำให้สามารถดีบักสคริปต์ที่โหลดแบบไดนามิกในเบราว์เซอร์ได้หรือไม่?

3
การดีบัก C #: [DebuggerDisplay] หรือ ToString ()?
มีสองวิธีในการเพิ่มประโยชน์ของการดีบักข้อมูลแทนที่จะเห็น{MyNamespace.MyProject.MyClass}ในดีบักเกอร์ นี่คือการใช้DebuggerDisplayAttributeและToString()วิธีการ using System.Diagnostics; ... [DebuggerDisplay("Name = {Name}")] public class Person { public string Name; } หรือ public class Person { public string Name; public override string ToString() { return string.Format("Name = {0}", Name); } } มีเหตุผลใดที่จะชอบอีกฝ่ายหนึ่ง? มีเหตุผลใดที่จะไม่ทำทั้งสองอย่าง? เป็นความชอบส่วนตัวล้วนๆ?

5
อย่าหยุดดีบักเกอร์ที่ข้อยกเว้นนั้นเมื่อถูกโยนและจับ
ในเครื่องมือ / ข้อยกเว้นฉันได้ตั้งค่าตัวเลือกให้ดีบักเกอร์หยุดเมื่อเกิดข้อยกเว้น ไม่ว่าจะจับได้หรือไม่. ฉันจะยกเว้นข้อยกเว้นของกฎนั้นได้อย่างไร ที่ไหนสักแห่งในรหัสของฉันมีข้อยกเว้นที่ถูกจับได้ซึ่งเป็นส่วนหนึ่งของตรรกะของโปรแกรม ดังนั้นฉันจึงไม่ต้องการให้ข้อยกเว้นนั้นหยุดดีบักเกอร์ทุกครั้งที่ถูกโจมตี ตัวอย่าง: ฉันต้องการละเว้นข้อยกเว้น nullreference (ซึ่งถูกจับได้) ในบรรทัด 344 ฉันต้องการหยุดที่ข้อยกเว้นอื่น ๆ ทั้งหมด

8
ฉันจะแนบ Visual Studio เข้ากับกระบวนการที่ยังไม่เริ่มได้อย่างไร
ฉันมีโปรแกรม. NET ที่ไม่สามารถเรียกใช้จาก Visual Studio ได้ด้วยเหตุผลบางประการ (ไฟล์ Excel ที่สร้างจากโครงการเทมเพลต Excel 2010) ซึ่งฉันต้องการแก้ไขจุดบกพร่องของเหตุการณ์เริ่มต้น หากฉันต้องการดีบักเหตุการณ์ที่เกิดขึ้นหลังจากการเริ่มต้นโปรแกรมก็ไม่มีปัญหา ฉันเรียกใช้โปรแกรมจาก explorer แนบกระบวนการเข้ากับ Visual Studio และเพิ่มเบรกพอยต์ในโค้ด แต่ที่นี่ฉันต้องใส่เบรกพอยต์ในเหตุการณ์เริ่มต้น ฉันต้องสามารถแนบกระบวนการเข้ากับ Visual Studio ไม่ได้ขึ้นอยู่กับ PID แต่ใช้ชื่อกระบวนการเฉพาะหรือโซลูชันอื่น ๆ ที่จะใช้งานได้ แน่นอนว่าการเพิ่มThread.Sleep(1000)ในกิจกรรมเริ่มต้นของฉันเพื่อให้ฉันมีเวลาแนบกระบวนการใน Visual Studio ก็หมดปัญหา!



5
จะทำให้ backtrace () / backtrace_symbols () พิมพ์ชื่อฟังก์ชันได้อย่างไร?
ลินุกซ์เฉพาะbacktrace()และbacktrace_symbols()อนุญาตให้คุณสร้างการติดตามการโทรของโปรแกรม อย่างไรก็ตามมันพิมพ์เฉพาะที่อยู่ของฟังก์ชันไม่ใช่ชื่อของโปรแกรมของฉัน ฉันจะทำให้พวกเขาพิมพ์ชื่อฟังก์ชันด้วยได้อย่างไร ฉันได้ลองรวบรวมโปรแกรมด้วย-gเช่นเดียวกับ-ggdb. กรณีทดสอบด้านล่างเพียงแค่พิมพ์สิ่งนี้: พื้นหลัง ------------ ./a.out () [0x8048616] ./a.out () [0x8048623] /lib/libc.so.6(__libc_start_main+0xf3) [0x4a937413] ./a.out () [0x8048421] ---------------------- ฉันต้องการให้ 2 รายการแรกแสดงชื่อฟังก์ชันด้วยfooและmain รหัส: #include <execinfo.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <stdlib.h> static void full_write(int fd, const char *buf, size_t len) { while (len > 0) { ssize_t ret …
90 c  linux  debugging  backtrace 

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

4
หน้าต่าง Visual Studio ทันที: วิธีดูรายการมากกว่า 100 รายการแรก
ฉันกำลังพยายามดูคุณสมบัติของวัตถุที่มีคุณสมบัติมากกว่า 300 รายการในหน้าต่างทันทีของ Visual Studio 2005 แสดงเฉพาะ 100 รายการแรกตามด้วยคำอธิบายภาพนี้: < More... (The first 100 of 306 items were displayed.) > ฉันพยายามดูรายการที่เหลือ แต่คิดไม่ออก ฉันรู้ว่าฉันเห็นสิ่งเหล่านี้ในหน้าต่างนาฬิกา แต่มันไม่เหมือนกัน

9
วิธีที่ดีที่สุดในการแก้ไขข้อบกพร่องในกระบวนการ Scrum? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันได้ศึกษาและอ่านเกี่ยวกับ Scrum ในช่วงสองสามวันที่ผ่านมาและอ่านเกี่ยวกับ Sprint Planning และงานต่างๆ ปัญหาหนึ่งที่ผุดขึ้นมาในใจของฉันคือวิธีจัดการกับจุดบกพร่องใน Scrum Henrik Kniberg แสดงวิธีการจัดการกับปัญหานี้ในหนังสือScrum และ XP ที่ดีมากของเขาจาก Trenches : เจ้าของผลิตภัณฑ์พิมพ์รายการ Jira ที่มีลำดับความสำคัญสูงที่สุดนำไปที่การประชุมวางแผนการวิ่งและวางไว้บนผนังพร้อมกับเรื่องราวอื่น ๆ (ดังนั้นการระบุลำดับความสำคัญของรายการเหล่านี้โดยปริยายเมื่อเทียบกับเรื่องราวอื่น ๆ ) เจ้าของสินค้าสร้างเรื่องราวที่อ้างอิงถึงรายการจิระ ตัวอย่างเช่น "แก้ไขข้อบกพร่องการรายงานส่วนหลังที่สำคัญที่สุด Jira-124, Jira- 126 และ Jira-180" การแก้ไขข้อบกพร่องถือเป็นสิ่งที่อยู่นอกเหนือจากการวิ่งนั่นคือทีมรักษาปัจจัยโฟกัสที่ต่ำพอ (เช่น 50%) เพื่อให้แน่ใจว่าพวกเขามีเวลาแก้ไขจุดบกพร่อง จากนั้นสันนิษฐานง่ายๆว่าทีมงานจะใช้เวลาส่วนหนึ่งในแต่ละ sprint เพื่อแก้ไขข้อบกพร่องที่ Jira รายงาน ใส่สินค้าค้างส่งใน …
88 debugging  scrum 

5
python pdb - ข้ามลูป
ฉันจะข้ามการวนซ้ำโดยใช้pdb.set_trace()? ตัวอย่างเช่น, pdb.set_trace() for i in range(5): print(i) print('Done!') pdbแจ้งก่อนลูป ฉันป้อนคำสั่ง ค่า 1-5 ทั้งหมดจะถูกส่งกลับจากนั้นฉันต้องการได้รับแจ้งpdbอีกครั้งก่อนprint('Done!')ดำเนินการ
88 debugging  pdb 

17
เครื่องมือสำหรับนักพัฒนา Chrome จะไม่แสดงไฟล์ JavaScript ทั้งหมดอีกต่อไป
ไฟล์ JavaScript บางไฟล์ไม่สามารถมองเห็นได้ในเครื่องมือ Chorme Developer อีกต่อไป Google Chrome เป็นเวอร์ชันล่าสุด เวอร์ชัน 44.0.2403.130 ม. เวอร์ชันดีบักของแอป สคริปต์ในหัว <script src="/Scripts/jquery-ui-1.8.24.js"></script> <script src="/Scripts/jquery.validate.js"></script> ... <script src="/Client/Statics/GuiContainers.js"></script> <script src="/Client/ClientDAL.js"></script> <script src="/Client/ClientLayoutUpdater.js"></script> <script src="/Client/ClientRenderer.js"></script> <script src="/Client/ControllerLocator.js"></script> สคริปต์ส่วนแรกสามารถมองเห็นได้ในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Chrome ภายใต้เมนูแหล่งที่มาบนเส้นทาง localhost / Scripts / * ส่วนที่สองของสคริปต์ไม่สามารถมองเห็นได้ตั้งแต่เมื่อวานนี้ เครื่องมือสำหรับนักพัฒนาคืออะไร? ไม่มีข้อผิดพลาดในคอนโซล JavaScript ฉันเห็นคำขอที่สำเร็จสำหรับไฟล์ JavaScript ในแท็บเครือข่าย โหลด JavaScript ทั้งหมดแล้ว แอปพลิเคชันทำงานได้ดี เครื่องมือสำหรับนักพัฒนาคืออะไร? ใครมีความคิด? …

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