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

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

3
bash: หลีกเลี่ยงแต่ละบรรทัดจากการสะท้อนที่ "-x"
ในทุบตีเมื่อทำงานกับ-xตัวเลือกมันเป็นไปได้ที่จะได้รับการยกเว้นคำสั่งของแต่ละบุคคลจากการสะท้อน? ฉันพยายามที่จะให้ออกเป็นระเบียบที่เป็นไปได้เพื่อให้ฉันทำงานบางส่วนของสคริปต์ของฉันใน subshell set +xกับ อย่างไรก็ตามแถวset +xนั้นยังคงสะท้อนอยู่และไม่เพิ่มข้อมูลที่มีค่าลงในเอาต์พุต ผมจำได้ว่ากลับมาอยู่ในที่ไม่ดีเก่า.batวันเมื่อทำงานกับสายของแต่ละบุคคลอาจจะได้รับการยกเว้นโดยเริ่มต้นพวกเขาด้วยecho on @มีผู้ใดเทียบเท่าในทุบตี? #!/bin/bash -x function i_know_what_this_does() { ( set +x echo do stuff ) } echo the next-next line still echoes 'set +x', is that avoidable? i_know_what_this_does echo and we are back and echoing is back on เมื่อเรียกใช้ข้างต้นผลลัพธ์คือ: + echo the next-next …
11 bash  shell  debugging 

4
วิธีแก้ปัญหาปัญหาการระงับ
ฉันเคยมี Fedora 14 ติดตั้งอยู่ใน HP Compaq 610 นี้และคุณสมบัติการระงับทำงานได้ดี ตอนนี้ฉันได้ติดตั้ง Scientific Linux 6.1 suspend แล้วไม่ทำงานอีกต่อไป ฉันจะดีบัก / แก้ไขได้อย่างไร

2
printk ทำงานอย่างไรภายในอย่างแน่นอน?
ฉันรู้ว่าprintfต้องการความช่วยเหลือจากระบบปฏิบัติการเพื่อทำงานของมัน ฉันรู้ว่าprintfไม่ทำงานในซอร์สโค้ด Linux เนื่องจากไม่มีไลบรารี่ และเรามีprintkการดีบัก วิธีการที่ไม่printkทำงานเมื่อระบบปฏิบัติการยังคงบูตแล้ว?

2
วิธีการถ่ายโอนข้อมูลปริมาณการใช้ USB
ฉันมี USB gamepad และต้องการดูและตรวจสอบสัญญาณและคำสั่งที่อุปกรณ์ต่อพ่วงนี้จริง ๆ แล้วส่งไปยังพีซี / เคอร์เนลของฉัน: ฉันจะทำอย่างไร ฉันคิดว่าเป็นอย่างนั้น cat /dev/bus/usb/006/003 เพียงพอ แต่เห็นได้ชัดว่าคำสั่งนี้จะกลับมาทันทีและพิมพ์ตัวอักษรที่เข้ารหัสไม่ได้อ่านบางส่วน มีวิธี "debug" อุปกรณ์ USB เช่นนั้นหรือไม่?
9 linux  usb  debugging 

1
วิธีแก้ปัญหาระบบค้าง
ฉันพบข้อผิดพลาดแปลก ๆ เมื่อฉันปิดฝาแล็ปท็อปของฉัน - ระบบค้าง (ไม่มีปฏิกิริยาต่อปุ่มกดไม่มีรูปแบบการตอบสนอง) แข็งและแสดงเอฟเฟกต์สีแปลก ๆ บันทึกเคอร์เนล (หลังจากรีบูต) ไม่แสดงอะไรเลย คำถามของฉันคือ - จะแก้ไขข้อบกพร่องได้อย่างไร อาจจะมีวิธีการติดตามฟังก์ชั่นเคอร์เนลที่เรียกว่าครั้งสุดท้ายหรือสิ่งที่คล้ายกัน?

2
วิธีการเปิดใช้งานรายงานข้อผิดพลาด / core dumps / stack การบันทึกทั่วโลก?
บั๊กที่ล้มเหลวอาจเป็นสิ่งที่น่ารำคาญที่สุดซึ่งนำไปสู่การสูญเสียข้อมูลการหยุดทำงานและผู้ใช้ที่หงุดหงิด มันจะดีถ้าแอปพลิเคชันขัดข้องน้อยกว่า เนื่องจากความซับซ้อนของบริบทเครื่องขัดข้องจึงไม่สามารถทำซ้ำได้ในเวลาที่เหมาะสมสำหรับผู้ใช้ทั่วไป ไม่ได้หมายความว่าบั๊กนั้นหายาก - อาจหมายถึงว่าสิ่งที่ทำให้เกิดมันเกิดขึ้นน้อยมากสำหรับผู้ใช้แต่ละคน (ตัวอย่างเช่นการเปลี่ยนแปลง DST) ข้อผิดพลาดดังกล่าวไม่น่าจะได้รับการแก้ไขเว้นแต่ผู้ใช้จำนวนมากรายงานพวกเขา มันจะดีถ้ามีรายงานการขัดข้องเพิ่มเติม ในการแก้ปัญหาการขัดข้องผู้พัฒนาจำเป็นต้องใช้บริบทที่ชัดเจนมากที่สุดเท่าที่จะทำได้ รายงานข้อผิดพลาดที่สร้างขึ้นนั้นดีเพราะปกติแล้วพวกเขาจะมีรายละเอียดและแม่นยำ ผู้ใช้ไม่สามารถคาดหวังให้สังเกตอย่างกระตือรือร้นและรายงานบริบททั้งหมดด้วยตนเองดังนั้นพวกเขาจึงมักส่งข้อมูลที่กระจัดกระจายและไม่ถูกต้อง กลุ่มเป้าหมายสำหรับแอปพลิเคชันจำนวนมากไม่ใช่นักพัฒนาหรือผู้ดูแลระบบ แต่เป็นบุคคลทั่วไปที่บ้านหรือที่ทำงาน คาดว่าผู้ใช้ดังกล่าวจะไม่ทราบวิธีรวบรวมข้อมูลข้อขัดข้องด้วยตนเองหรือติดตั้ง-dbgแพ็คเกจ แต่รายงานที่สร้างจากผู้ใช้ดังกล่าวยังสามารถใช้งานได้ แอปพลิเคชันบางตัวมีเครื่องมือรายงานข้อผิดพลาดของตัวเองแต่จากประสบการณ์ของฉันสิ่งเหล่านี้ไม่ค่อยได้ผลและเมื่อพวกเขารายงานว่าพวกเขาล้มเหลวในการรายงานข้อผิดพลาดดูเหมือนจะไม่มีข้อมูลใด ๆ เกี่ยวกับวิธีการทำงานด้วยตนเอง ทั้งเวอร์ชันล่าสุดของ Firefox และ Flash) การรายงานความผิดพลาดทั้งระบบจะเป็นสิ่งที่ดี มีการสร้างรายงานข้อผิดพลาดชนิดใด * ซึ่งสามารถเปิดใช้งานทั่วโลกได้ ** โดยไม่ต้องติดตั้ง-dbgแพคเกจจำนวนมากอ่านเอกสารของแต่ละแอปพลิเคชันและทุกแอปพลิเคชันหรือทำให้เครื่องปกติช้าลงเพื่อรวบรวมข้อมูล * บันทึก, ทิ้งหลัก, ร่องรอยสแต็ค, อะไรก็ตาม ** ไม่จำเป็นสำหรับinitแต่อย่างน้อยสำหรับชุดย่อยที่สำคัญของแอปพลิเคชันที่ทำงานบนการติดตั้ง Linux บนเดสก์ท็อปทั่วไป จากประสบการณ์ของฉันแอพพลิเคชั่น GUI ผิดพลาดมากกว่า 100 ครั้งมากกว่าแอพพลิเคชั่นของเชลล์ดังนั้นแอพพลิเคชั่นแบบ GUI จึงเป็นจุดสนใจ
9 debugging 

4
การดีบักเครื่อง Linux หยุดทำงาน
ฉันมี Linux RH 4.7 64- บิต severs เหมือนกัน พวกเขาเรียกใช้ฐานข้อมูลคลัสเตอร์ (คลัสเตอร์คือระดับแอปพลิเคชัน) ในบางโอกาส (ทุกเดือนหรือมากกว่านั้น) กล่องสุ่ม (ไม่เหมือนกัน) ค้าง ฉันสามารถ ping กล่องและ ping ทำงานได้ ถ้าฉันพยายาม ssh ในกล่องฉันจะได้รับ: ssh_exchange_identification: Connection closed by remote host ติดตั้ง SSH อย่างถูกต้อง เมื่อฉันไปที่ห้องเซิร์ฟเวอร์และพยายามลงชื่อเข้าใช้คอนโซลโดยตรงฉันสามารถสลับคอนโซลด้วยAlt+ Fnฉันสามารถป้อนชื่อผู้ใช้และตัวละครจะแสดง แต่หลังจากกดEnterไม่มีอะไรเกิดขึ้น ฉันรอ 8 ชั่วโมงหนึ่งครั้งและมันก็ไม่เปลี่ยน ฉันตั้งค่า syslog เพื่อบันทึกทุกอย่างไปยังโฮสต์ระยะไกลและไม่มีอะไรในบันทึกเหล่านั้น เมื่อฉันรีบูทเครื่องมันก็ทำงานได้โดยไม่มีปัญหา ฉันได้ทำการทดสอบ HW - ทุกอย่างโอเคและไม่มีอะไรในบันทึก เครื่องยังได้รับการตรวจสอบด้วย NAGIOS และไม่มีภาระหรือกิจกรรมผิดปกติก่อนที่จะหยุด ฉันไม่มีความคิด …

2
ฉันจะดีบักโมดูลเคอร์เนลที่ตัวชี้ NULL ปรากฏขึ้นได้อย่างไร
ฉันมีโมดูลเคอร์เนลที่กำหนดเองที่ฉันรวบรวมจากแพตช์นี้ที่เพิ่มการสนับสนุนlogitech G19แป้นพิมพ์ในอุปกรณ์ G ซีรี่ส์อื่น ๆ ฉันรวบรวมมันได้ดีกับสาขาหลักของ Ubuntu ที่ไม่ฝักใฝ่ฝ่ายใด (2.6.35) ฉันสามารถบูทและโหลดโมดุลได้ แต่ฉันกำลังเจอสถานการณ์ที่แปลกมาก ทันทีที่ฉันโหลดโมดูล (ทั้งตอนบูทหรือผ่าน modprobe) ฉันจะได้หน้าจอสีดำและคอนโซลของฉันจะล็อคขึ้น ส่วนที่แปลกคือมันไม่ได้ล็อคระบบของฉันมันเป็นเพียงเซสชั่นคอนโซลปัจจุบัน ฉันสามารถ SSH ลงในกล่องของฉันและมันให้เทอร์มินัลและเซสชัน และฉันสามารถพิมพ์และฉันยังสามารถเรียกใช้คำสั่งและให้ผลลัพธ์ฉัน จากนั้นจะดึงพรอมต์ถัดไปของฉันและล็อคทันที ฉันเห็นdmesgว่ามีตัวชี้โมฆะและฉันได้รับ stacktrace ต่อไปนี้: [ 956.215836] input: Logitech G19 Gaming Keyboard as /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1.2/1-2.1.2:1.1/input/input5 [ 956.216023] hid-g19 0003:046D:C229.0004: input,hiddev97,hidraw3: USB HID v1.11 Keypad [Logitech G19 Gaming Keyboard] on usb-0000:00:1d.7-2.1.2/input1 [ 956.216065] …

5
วิธีติดตาม / แก้ไขปัญหาเกี่ยวกับหน่วยความจำในรหัส C / C ++ ขนาดใหญ่บนระบบ * nix
กลยุทธ์ใดที่คุณใช้ขณะติดตามปัญหาที่เกี่ยวข้องกับหน่วยความจำ เครื่องมือใดที่คุณใช้ (โอเพนซอร์สและกรรมสิทธิ์) เพื่อระบุการรั่วไหลของหน่วยความจำความเสียหายของหน่วยความจำ ฯลฯ คุณจะติดตามการรั่วไหลของหน่วยความจำได้อย่างไรถ้ามีเพียง gdb / dbx ในระบบ? สำหรับฉันการแก้ไขการรั่วไหลของหน่วยความจำด้วยดีบักเกอร์นั้นยากมาก

2
การดีบักการล็อก - ระบบจะสูญเสียบันทึกของฉัน
นับตั้งแต่ฉันได้ "อัปเกรด" เป็น systemd บน Arch Linux ฉันจะสูญเสียบันทึกเมื่อเกิดการล็อคที่ไม่คาดคิด ฉันประสบปัญหาการสูญเสียบันทึกเดียวกันเมื่อเดือนที่แล้วและเพิ่งตีปัญหาอีกครั้ง มีอื่น ๆ ยังอิสระยืนยัน สถานการณ์: ขณะทำบางสิ่งใน Java และด้วยยูทิลิตี้ที่เกี่ยวข้องกับเครือข่ายฉันเห็นว่า KDE (นาฬิกา) หยุดนิ่ง แฟน CPU มีเสียงดังและความร้อนก็เพิ่มสูงขึ้น ตัวชี้เมาส์ยังคงสามารถเคลื่อนย้ายได้ ฉันพยายาม ssh จากเครื่องอื่น (ล้มเหลวเนื่องจาก "ไม่มีเส้นทางสู่โฮสต์") ฉันรอไม่กี่นาทีบางทีจ้องจับผิด NMI อาจฆ่างานที่ละเมิด ไม่มีลูกเต๋า Ctrl+ Alt+ F1ไม่สามารถใช้งานได้เช่นกันแม้หลังจากSysRq+R เนื่องจากขั้นตอนข้างต้นไม่ได้ผลฉันจึงตัดสินใจออกลำดับ SysRq REI หลังจากนั้นEหน้าจอก็กลายเป็นสีดำ แต่ไม่มีคอนโซลใด ๆ ไม่ใช่แม้หลังจากSysRq+K ดังนั้นเซสชันนี้จะหายไปสิ่งเดียวที่สามารถทำได้คือการรวบรวมข้อมูลการดีบัก เมื่อพิจารณาถึงวิกิพีเดียฉันตัดสินใจที่จะกดSysRq+ d(ล็อคที่จัดแสดง) กับบางกลุ่ม หลังจากกดSysRq+ Sฉันรอที่สองแล้วรีบูตกับ+SysRqB หลังจากรีบูตและเข้าสู่คอนโซลฉันไม่เห็นร่องรอยของความผิดพลาดใด ๆ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.