วิธีการดีบั๊กโดยไม่ใช้ "โปรแกรมรับสัญญาณ SIGILL" โดยใช้เคอร์เนล 3.18 (3.12 ทำงาน)


10

ฉันพยายามดีบักโปรแกรมด้วย gdb ใน Raspbian แต่ทั้งหมดที่ฉันได้คือ:

Program received signal SIGILL, Illegal instruction.
0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3

ไม่ช่วยตั้งค่าจุดSIGILLจับเป็นnostop( handle SIGILL nostop):

Program received signal SIGILL, Illegal instruction.

Program terminated with signal SIGILL, Illegal instruction.
The program no longer exists.

backtrace ทั้งหมดที่ฉันได้รับคือ:

#0  0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
#1  0x00000000 in ?? ()

หากฉันเริ่มโปรแกรมนอก gdb ฉันจะได้รับข้อยกเว้น C ++ ปกติ (ที่ฉันต้องการแก้ปัญหา)

ซอฟต์แวร์ทั้งหมดได้รับการอัพเดตเป็นเวอร์ชั่นล่าสุดจากที่เก็บ raspbian ต่อไปฉันลองใช้เคอร์เนล raspberry pi รากฐาน "3.18.9+" และเคอร์เนล raspbain "3.18.0-trunk-rpi" (ฉันต้องการโมดูลเคอร์เนลแบบกำหนดเอง) ฉันสามารถดีบักโปรแกรมเดียวกันบนเครื่องหลักได้โดยไม่มีปัญหา

อัปเดต:การดีบักทำงานตามที่คาดไว้กับเคอร์เนล "3.12-1-rpi"

อะไรเป็นสาเหตุของข้อผิดพลาดนี้?


คุณลองมาแล้วhandle SIGILL pass nostopหรือยัง
mpromonet

@mpromonet เนื่องจากpassเป็นค่าเริ่มต้นจึงไม่ควรสร้างความแตกต่างและไม่ได้ทำให้เกิดผลใด ๆ ผลลัพธ์เช่นเดียวกับhandle SIGILL nostop
someonr

และไม่มี backtrace ที่มีความหมาย ( bt)? ฉันคิดว่าคุณต้องคิดถึงบริบทเพิ่มเติมที่นี่หากคุณคาดหวังว่าจะมีคนอธิบาย "สิ่งที่ทำให้เกิดข้อผิดพลาดนี้" ยึดตามคำสั่งที่ผิดกฎหมายในตัวเชื่อมโยง / ตัวโหลด ( ld-linux-armhf)
goldilocks

ฉันไม่สามารถรับ backtrace ที่มีความหมายได้ (ดูคำถามที่แก้ไขแล้ว) ฉันจะพยายามสร้างตัวอย่างเล็ก ๆ นอกจากนี้ฉันสับสนว่าฉันไม่ได้รับ opcode ที่ผิดกฎหมายหากไม่มี gdb
คนที่

1
สแต็คดูเหมือนถูกทุบ valgrind สามารถช่วยได้
mpromonet

คำตอบ:


4

สิ่งนี้ดูเหมือนกับปัญหานี้: https://github.com/raspberrypi/linux/issues/766

แก้ไขสี่วันที่ผ่านมา


เสียงที่มีแนวโน้ม จะทดสอบในภายหลัง ขอบคุณสำหรับข้อมูล
คนที่

@someonr คุณตรวจสอบหรือไม่
tshepang

sudo apt-get update; sudo apt-get upgrade; sudo rpi-updateแก้ไขปัญหาให้ฉันทำให้ฉันสามารถใช้continueและhandle SIGILL nostop
morloch
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.