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

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

13
การแก้ไขในดีบักเกอร์ Chrome
ฉันจะแก้ไขรหัส JavaScript แบบไดนามิกในดีบักเกอร์ Chrome ได้อย่างไร ไม่ใช่สำหรับฉันดังนั้นฉันจึงไม่สามารถเข้าถึงไฟล์ต้นฉบับได้ ฉันต้องการแก้ไขโค้ดและดูว่าเอฟเฟกต์มีอะไรบ้างในหน้านี้ในกรณีนี้การหยุดนิเมชั่นจากการเข้าคิวหลายครั้ง


5
ฉันสามารถตั้งเบรกพอยต์ใน 'การเข้าถึงหน่วยความจำ' ใน GDB ได้หรือไม่?
ฉันใช้งานแอพพลิเคชั่นผ่าน gdb และฉันต้องการตั้งค่าเบรกพอยต์เมื่อใดก็ตามที่มีการเข้าถึง / เปลี่ยนแปลงตัวแปรเฉพาะ มีวิธีที่ดีในการทำเช่นนี้หรือไม่? ฉันยังสนใจวิธีอื่น ๆ ในการตรวจสอบตัวแปรใน C / C ++ เพื่อดูว่า / เมื่อมันเปลี่ยนแปลง

9
Xcode / iOS: วิธีการตรวจสอบว่ารหัสกำลังทำงานอยู่ในการสร้าง DEBUG / RELEASE
ฉันกำลังสร้างแอพที่ประมวลผลข้อมูลบัตรเครดิตที่ละเอียดอ่อน หากรหัสของฉันทำงานในโหมดแก้ไขข้อบกพร่องฉันต้องการบันทึกข้อมูลนี้ไปยังคอนโซลและทำให้บางไฟล์ทิ้ง อย่างไรก็ตามในรุ่น appstore สุดท้าย (เช่นเมื่อมันทำงานในโหมดการเปิดตัว) มันเป็นสิ่งสำคัญทั้งหมดนี้ถูกปิดใช้งาน (อันตรายด้านความปลอดภัย)! ฉันจะพยายามตอบคำถามของฉันให้ดีที่สุด ดังนั้นคำถามจะกลายเป็น'วิธีแก้ปัญหานี้เป็นเส้นทางที่ถูกต้องหรือดีที่สุดที่จะทำหรือไม่' // add `IS_DEBUG=1` to your debug build preprocessor settings #if( IS_DEBUG ) #define MYLog(args...) NSLog(args) #else #define MYLog(args...) #endif

14
เหตุใดจึงเป็นเช่นนี้สำหรับการออกจากลูปในบางแพลตฟอร์มและไม่ใช่ในแพลตฟอร์มอื่น
ฉันเพิ่งเริ่มเรียนรู้ C และฉันกำลังเรียนกับ C เป็นหัวเรื่อง ฉันกำลังเล่นกับลูปและฉันพบกับพฤติกรรมแปลก ๆ ซึ่งฉันไม่รู้จะอธิบายอย่างไร #include <stdio.h> int main() { int array[10],i; for (i = 0; i <=10 ; i++) { array[i]=0; /*code should never terminate*/ printf("test \n"); } printf("%d \n", sizeof(array)/sizeof(int)); return 0; } ในแล็ปท็อปที่ใช้ Ubuntu 14.04 รหัสนี้จะไม่หยุด มันจะเสร็จสมบูรณ์ บนคอมพิวเตอร์ของโรงเรียนที่ใช้ CentOS 6.6 มันก็ทำงานได้ดี บน Windows 8.1 …

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


16
เป็นไปได้ที่จะ "ถอดรหัส" ไฟล์ Windows .exe หรือไม่ หรืออย่างน้อยก็ดูสภา
เพื่อนของฉันดาวน์โหลดมัลแวร์บางตัวจาก Facebook และฉันอยากรู้ว่ามันทำอะไรโดยไม่ติดเชื้อตัวเอง ฉันรู้ว่าคุณไม่สามารถคอมไพล์ไฟล์. exe ได้ แต่อย่างน้อยฉันสามารถดูในแอสเซมบลีหรือแนบดีบักเกอร์ได้หรือไม่ แก้ไขเพื่อบอกว่าไม่ใช่. NET ที่สามารถเรียกทำงานได้ไม่มีส่วนหัว CLI

14
แก้ไขข้อบกพร่องใน Clojure? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ วิธีที่ดีที่สุดในการดีบักโค้ด Clojure ในขณะที่ใช้งาน repl คืออะไร
227 debugging  clojure 

1
อะไรทำให้ดีบักเกอร์ Visual Studio หยุดประเมินการแทนที่ ToString
สภาพแวดล้อม: Visual Studio 2015 RTM (ฉันไม่ได้ลองรุ่นที่เก่ากว่า) เมื่อเร็ว ๆ นี้ฉันได้ทำการดีบักรหัสเวลา Nodaของฉันและฉันสังเกตว่าเมื่อฉันมีตัวแปรประเภทท้องถิ่นNodaTime.Instant(หนึ่งในstructประเภทส่วนกลางในเวลา Noda) หน้าต่าง "คนในท้องถิ่น" และ "ดู" ดูเหมือนจะไม่เรียกใช้การToString()แทนที่ หากฉันโทรToString()อย่างชัดเจนในหน้าต่างดูฉันเห็นการแสดงที่เหมาะสม แต่ไม่เช่นนั้นฉันก็เห็น: variableName {NodaTime.Instant} ซึ่งไม่มีประโยชน์มาก ถ้าฉันเปลี่ยนการแทนที่เพื่อส่งคืนสตริงคงที่สตริงนั้นจะปรากฏในดีบักเกอร์ดังนั้นจึงสามารถรับได้อย่างชัดเจนว่ามันอยู่ที่นั่น - มันไม่ต้องการใช้มันในสถานะ "ปกติ" ฉันตัดสินใจที่จะทำซ้ำในประเทศนี้ในแอปตัวอย่างเล็ก ๆ น้อย ๆ และนี่คือสิ่งที่ฉันคิดขึ้นมา (โปรดทราบว่าในเวอร์ชันแรกของโพสต์DemoStructนี้เป็นคลาสและDemoClassไม่มีอยู่จริง - ความผิดของฉัน แต่มันอธิบายความคิดเห็นบางอย่างที่ดูแปลก ๆ ในตอนนี้ ... ) using System; using System.Diagnostics; using System.Threading; public struct DemoStruct { public string …

27
Spring RestTemplate - วิธีเปิดใช้งานการดีบัก / การบันทึกคำขอ / การตอบกลับอย่างสมบูรณ์หรือไม่
ฉันใช้ Spring RestTemplate อยู่พักหนึ่งแล้วฉันก็ชนกำแพงอย่างต่อเนื่องเมื่อฉันพยายามที่จะดีบั๊กมันเป็นคำขอและคำตอบ โดยทั่วไปฉันกำลังมองหาสิ่งเดียวกันกับที่ฉันเห็นเมื่อฉันใช้ขดตัวเลือก "verbose" ที่เปิดอยู่ ตัวอย่างเช่น : curl -v http://twitter.com/statuses/public_timeline.rss จะแสดงทั้งข้อมูลที่ส่งและข้อมูลที่ได้รับ (รวมถึงส่วนหัวคุกกี้ ฯลฯ ) ฉันได้ตรวจสอบโพสต์ที่เกี่ยวข้องเช่น: ฉันจะบันทึกการตอบสนองใน Spring RestTemplate ได้อย่างไร แต่ฉันไม่สามารถแก้ไขปัญหานี้ได้ วิธีหนึ่งในการทำเช่นนี้คือการเปลี่ยนรหัสต้นฉบับของ RestTemplate และเพิ่มคำสั่งการบันทึกพิเศษที่นั่น แต่ฉันจะพบว่าวิธีนี้เป็นวิธีสุดท้าย ควรมีวิธีบอก Spring Web Client / RestTemplate เพื่อบันทึกทุกอย่างด้วยวิธีที่เป็นมิตรกว่านี้ เป้าหมายของฉันจะสามารถทำเช่นนี้ด้วยรหัสเช่น: restTemplate.put("http://someurl", objectToPut, urlPathValues); และจากนั้นรับข้อมูล debug ชนิดเดียวกัน (ตามที่ได้รับด้วย curl) ในล็อกไฟล์หรือในคอนโซล ฉันเชื่อว่านี่จะเป็นประโยชน์อย่างยิ่งสำหรับทุกคนที่ใช้ Spring RestTemplate และมีปัญหา การใช้ curl เพื่อดีบักปัญหา …

13
การเริ่มต้นดีบักหลามโดยอัตโนมัติเมื่อเกิดข้อผิดพลาด
นี่เป็นคำถามที่ฉันสงสัยมาระยะหนึ่งแล้ว แต่ฉันไม่เคยพบวิธีแก้ปัญหาที่เหมาะสมมาก่อน ถ้าฉันเรียกใช้สคริปต์และเจอกันสมมติว่ามี IndexError หลามพิมพ์บรรทัดตำแหน่งและคำอธิบายอย่างรวดเร็วของข้อผิดพลาดและออก เป็นไปได้หรือไม่ที่จะเริ่ม pdb โดยอัตโนมัติเมื่อพบข้อผิดพลาด? ฉันไม่ได้มีคำสั่งนำเข้าเพิ่มเติมที่ด้านบนของไฟล์หรือไม่ต้องมีโค้ดพิเศษอีกสองสามบรรทัด
216 python  debugging 

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

3
ใน Visual Studio C ++ การจัดสรรหน่วยความจำคืออะไร?
ใน Visual Studio เราทุกคนมี "baadf00d" ได้เห็น "CC" และ "CD" เมื่อตรวจสอบตัวแปรในดีบักเกอร์ใน C ++ ในช่วงเวลาทำงาน จากสิ่งที่ฉันเข้าใจ "CC" อยู่ในโหมด DEBUG เท่านั้นเพื่อระบุว่าเมื่อใดที่หน่วยความจำใหม่ () หรือจัดสรร () และหน่วยเดียว ในขณะที่ "CD" หมายถึงหน่วยความจำที่ลบหรือฟรี ฉันเห็น "baadf00d" เฉพาะในรุ่น RELEASE (แต่ฉันอาจผิด) นาน ๆ ครั้งเราจะเข้าสู่สถานการณ์ของการแก้ไขการรั่วไหลของหน่วยความจำบัฟเฟอร์ล้นและอื่น ๆ และข้อมูลประเภทนี้มีประโยชน์ ใครบางคนจะใจดีพอที่จะชี้ให้เห็นเมื่อใดและในโหมดใดหน่วยความจำถูกตั้งค่าเป็นรูปแบบไบต์ที่รู้จักสำหรับการแก้ไขจุดบกพร่อง?

15
วิธีการตรวจสอบ IE11?
เมื่อฉันต้องการตรวจจับ IE ฉันใช้รหัสนี้: function getInternetExplorerVersion() { var rv = -1; if (navigator.appName == 'Microsoft Internet Explorer') { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); if (re.exec(ua) != null) rv = parseFloat( RegExp.$1 ); } return rv; } function checkVersion() { var msg = "You're not using Internet …

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