GDB เป็นซอฟต์แวร์โอเพนซอร์สและซอฟต์แวร์บรรทัดคำสั่งฟรีที่ช่วยให้ผู้ใช้และนักพัฒนาซอฟต์แวร์สามารถมองเห็นสิ่งที่เกิดขึ้นได้ภายในโปรแกรมอื่นในขณะที่ ดำเนินการหรือเหตุใดแอปพลิเคชันจึงล้มลงที่จุดใดจุดหนึ่ง
คุณสมบัติได้อย่างรวดเร็ว
คุณลักษณะสำคัญประกอบด้วยสี่เทคนิคที่แตกต่างกันเพื่อช่วยให้นักพัฒนาสามารถตรวจจับข้อบกพร่องในการทำงานเริ่มต้นแอพพลิเคชันและระบุสิ่งใด ๆ ที่อาจส่งผลต่อพฤติกรรมของตัวเองหยุดโปรแกรมในสภาวะที่ระบุตรวจสอบบันทึกเมื่อแอพพลิเคชันล้มเหลว โปรแกรมเพื่อทดสอบกับการแก้ไขผลกระทบของปัญหาหนึ่งและดำเนินการต่อโดยการเรียนรู้เกี่ยวกับข้อผิดพลาดอื่น นอกจากนี้ยังสนับสนุนการดีบักของโปรแกรมที่เขียนขึ้นในหลากหลายภาษาโปรแกรม ได้แก่ C, C + +, Pascal , Ada, Objective-C และอื่น ๆ อีกมากมาย
นี่เป็นแอ็พพลิเคชันบรรทัดคำสั่ง
ดีบักเกอร์โครงการ GNU คือโปรแกรมจะเป็นแอ็พพลิเคชันบรรทัดคำสั่งเสมอ หากต้องการใช้คุณต้องเรียกใช้ & ldquo; gdb & rdquo; คำสั่งในโปรแกรมจำลองเทอร์มินัลจากนั้นให้รัน & ldquo; help & rdquo; คำสั่ง (ไม่มีเครื่องหมายคำพูด) พรอมต์ gdb นอกจากนี้คุณยังสามารถพิมพ์ & ldquo; help all & rdquo; คำสั่งเพื่อดูรายการคำสั่งทั้งหมดพิมพ์ "help" ตามด้วยชื่อคำสั่งเพื่อดูเอกสารฉบับสมบูรณ์พิมพ์ "help" ตามด้วยชื่อคลาสเพื่อดูรายการคำสั่งในคลาสนั้นพิมพ์คำว่า apropos word เพื่อค้นหา สำหรับคำสั่งที่เกี่ยวข้องกับ "word"
รายชื่อชั้นเรียนของคำสั่ง
หลังจากพิมพ์ & ldquo; help & rdquo; คำสั่งดังอธิบายข้างต้นคุณจะเห็นรายการชั้นเรียนของคำสั่งรวมถึงนามแฝง (แสดงนามแฝงของคำสั่งอื่น ๆ ) จุดพัก (ทำให้โปรแกรมหยุดที่จุดบางอย่าง) ข้อมูล (สำหรับการตรวจสอบข้อมูล), ไฟล์ (สำหรับการตรวจสอบไฟล์) , internals (คำสั่งบำรุงรักษา) ปิดบัง (คุณลักษณะปิดบัง), รัน (สำหรับรันโปรแกรม), สแต็ค (สำหรับตรวจสอบสแต็ค), สถานะ (สำหรับการสอบถามสถานะ), การสนับสนุน (สำหรับสิ่งอำนวยความสะดวกที่สนับสนุน), tracepoints (สำหรับการติดตามการทำงานของโปรแกรมโดยไม่ต้อง การหยุดโปรแกรม) และผู้ใช้กำหนด (คำสั่งที่ผู้ใช้กำหนดเอง)
แพลตฟอร์มฮาร์ดแวร์และ OSes ที่รองรับ
GDB ได้รับการออกแบบมาจากออฟเซตเพื่อเป็นแอ็พพลิเคชันข้ามแพลตฟอร์มซึ่งทำงานบนระบบปฏิบัติการหลักเช่น Microsoft Windows และบางส่วนของ Linux / UNIX variant นิยมมากที่สุด ได้รับการสนับสนุนบนแพลตฟอร์มฮาร์ดแวร์ 32 บิตและ 64 บิต
มีอะไรใหม่ ในรุ่นนี้:
- PR gdb / 22824 (คำอธิบายที่ผิดพลาดของฟังก์ชัน Python แบบใหม่ใน GDB 8.1 ไฟล์ข่าว)
- PR gdb / 22849 (ctrl-c ไม่ทำงานใน extended-remote)
- PR gdb / 22907 ([การถดถอย] gdbserver ไม่ทำงานกับไบนารีที่มีชื่อไฟล์เพียงอย่างเดียว)
- PR gdb / 23028 (ถอดส่วนที่ไม่สอดคล้องกันของ vcvtpd2dq)
- PR gdb / 23053 (Fix -D_GLIBCXX_DEBUG gdb-index index-regression)
- PR gdb / 23127 ([AArch64] GDB ไม่สามารถใช้สำหรับการดีบักซอฟต์แวร์ที่ใช้ที่อยู่เสมือนสูง)
- PR server / 23158 (gdbserver ไม่ทำงานบน Windows อีกต่อไป)
- จุดพัก PR / 23210 ([8.1 / 8.2 การถดถอย] ที่อยู่จุดพัก Bogus ถูกปรับจาก 0xf7fe7dd3 เป็น 0xffffffff7fe7dd3)
- จุดพักบนฟังก์ชัน C ++ จะถูกตั้งค่าตามขอบเขตทั้งหมดตามค่าเริ่มต้น (& quot; wild & quot; matching);
- การสนับสนุนการแทรกจุดพักสำหรับฟังก์ชันที่ทำเครื่องหมายด้วยแท็ก C ++ ABI
- กำหนดเป้าหมายการคำนวณเลขทศนิยมในระหว่างการประเมินผลการแสดงออก (ต้องใช้ MPFR 3.1 ขึ้นไป)
- การเพิ่มประสิทธิภาพการเขียนสคริปต์ Python ต่างๆ
- ปรับปรุง Rust support; โดยเฉพาะอย่างยิ่งวัตถุลักษณะสามารถตรวจสอบได้เมื่อแก้จุดบกพร่องรหัสสนิม
- GDB ไม่สร้างสมมติฐานเกี่ยวกับประเภทของสัญลักษณ์อีกต่อไปโดยไม่ต้องแก้ไขข้อมูลเพื่อหลีกเลี่ยงผลลัพธ์ที่ผิดพลาดและมักทำให้เกิดความสับสน
- คำสั่ง 'enable' และ 'disable' ตอนนี้ยอมรับตำแหน่งที่ตั้งเบรกพอยต์
- คำสั่ง 'starti' ใหม่เพื่อเริ่มต้นโปรแกรมที่คำสั่งแรก
- คำสั่ง 'rbreak' ใหม่เพื่อแทรกจุดพักจำนวนหนึ่งผ่านรูปแบบการแสดงผลปกติ (ต้องใช้งูหลาม)
- คำสั่ง 'ptype' สนับสนุนการพิมพ์ออฟเซตและขนาดของช่องในโครงสร้างแล้ว
- คำสั่ง 'gcore' ตอนนี้สนับสนุนการวางข้อมูลแมปหน่วยความจำทั้งหมด ('- a' ตัวเลือกบรรทัดคำสั่ง);
- ทางลัดใหม่สำหรับโหมด TUI Single-Key: 'i' สำหรับ stepi และ 'o' สำหรับ nexti
- การปรับปรุง GDBserver:
- สนับสนุนการส่งตัวแปรสภาพแวดล้อมไปยัง GDBserver
- สนับสนุนการเริ่มต้นกระบวนการที่ด้อยกว่าโดยใช้ไดเร็กทอรีการทำงานเริ่มต้นที่ระบุ
- ในระบบ Unix สนับสนุนการขยายตัวของ globbing และการแทนที่ตัวแปรของอาร์กิวเมนต์บรรทัดคำสั่งที่ต่ำกว่า
- การปรับปรุงที่สมบูรณ์แบบต่างๆ
- คำสั่งที่ใช้ในการคอมไพล์และใส่โค้ดด้วยคำสั่ง 'คอมไพล์' จะสามารถกำหนดค่าได้
- ตัวเลือกบรรทัดคำสั่งใหม่ '--readnever' เพื่อเพิ่มความเร็วในการเริ่มต้น GDB เมื่อแก้จุดบกพร่องข้อมูลไม่จำเป็นต้องมี
- สนับสนุนการกำหนดค่าดั้งเดิมใหม่ต่อไปนี้:
- FreeBSD / aarch64 (aarch64 * - * - freebsd *);
- FreeBSD / arm (แขน * - * - freebsd *);
- สนับสนุนเป้าหมายใหม่ต่อไปนี้:
- FreeBSD / aarch64 (aarch64 * - * - freebsd *);
- FreeBSD / arm (แขน * - * - freebsd *);
- OpenRISC ELF (or1k * - * - elf)
- ลบการสนับสนุนสำหรับเป้าหมายต่อไปนี้และการกำหนดค่าดั้งเดิม:
- Solaris2 / x86 (i? 86 - * - solaris2. [0-9]);
- Solaris2 / sparc (sparc * - * - solaris2. [0-9]);
- การสร้าง GDB เวอร์ชันนี้ต้องการเครื่องมือต่อไปนี้:
- คอมไพเลอร์ C ++ - 11 (เช่น GCC 4.8 หรือสูงกว่า)
- GNU สร้างเวอร์ชัน 3.81 ขึ้นไป
- การเปลี่ยนแปลงในรุ่นนี้ ได้แก่ :
- C + +: สนับสนุนการอ้างอิง rvalue
- การเพิ่มประสิทธิภาพของสคริปต์ Python:
- ฟังก์ชั่นใหม่ ๆ ในการเริ่มต้นหยุดและเข้าถึงการบันทึก btrace ที่ทำงานอยู่
- การสนับสนุนการอ้างอิง Rvalue ในไฟล์ gdb.Type
- ล่ามคำสั่ง GDB:
- คำสั่งของผู้ใช้จะยอมรับอาร์กิวเมนต์ได้ไม่ จำกัด จำนวน
- แท็ก & quot; eval & quot; คำสั่งจะขยายอาร์กิวเมนต์ที่ผู้ใช้กำหนดขึ้น
- สนับสนุน DWARF เวอร์ชัน 5
- (โปรดทราบว่ายังไม่มีการสนับสนุนดัชนี. debug_names)
- การปรับปรุง GDB / MI:
- คำสั่ง new -file-list-shared-libraries เพื่อแสดงไลบรารีที่ใช้ร่วมกันในโปรแกรม
- คำสั่ง New-target-flash-erase เพื่อลบหน่วยความจำแฟลช
- สนับสนุน FreeBSD / mips พื้นเมือง (mips * - * - freebsd)
- สนับสนุนเป้าหมายต่อไปนี้:
- Synopsys ARC (arc * - * - elf32)
- FreeBSD / mips (mips * - * - freebsd)
- การปรับปรุงเบ็ดเตล็ด:
- การเปลี่ยนเส้นทางด้วยบรรทัดคำสั่งสนับสนุนในโฮสต์ MS-Windows แล้ว
- การสนับสนุนชื่อเธรดใน MS-Windows
- สนับสนุนการลงทะเบียน PKU ใน GNU / Linux
- สนับสนุนคำอธิบายเป้าหมายใน sparc32 และ sparc64
- คำสั่ง New GDB / CLI เพื่อลบหน่วยความจำแฟลช
- rdrand และ rdseed คำแนะนำการบันทึก / เล่นใหม่
- การสนับสนุนคุณลักษณะต่อไปนี้ถูกนำออก:
- การสนับสนุนโปรแกรม Java ที่คอมไพล์ด้วย gcj
- สนับสนุนการกำหนดค่าต่อไปนี้:
- FreeBSD / alpha (alpha * - * - freebsd *)
- GNU / kFreeBSD / alpha (alpha * - * - kfreebsd * -gnu)
- PR build / 18033 (ความคิดเห็นสไตล์ C ++ ที่ใช้ใน gdb / iq2000-tdep.c และ gdb / คอมไพล์ / คอมไพล์ - *. c)
- คำสั่ง PR build / 18298 (& quot; compile & quot; ไม่พบคอมไพเลอร์ถ้าเครื่องมือที่กำหนดค่าด้วย triplet แทน quadruplet)
- PR tui / 18311 (สุ่ม SEGV เมื่อแสดงรีจิสเตอร์ในโหมด TUI)
- PR python / 18299 (ยกเว้นเมื่อลงทะเบียนเครื่องพิมพ์สวยทั่วโลกในโหมด verbose)
- PR PRINT / 18066 (อาร์กิวเมนต์ & quot; คำ & quot; ดูเหมือนว่าเสียใน Command.complete (ข้อความ, คำ))
- PR pascal / 17815 (แก้ไขลักษณะ Pascal สำหรับฟิลด์คลาสที่มีกล่องทดสอบ)
- PR หลาม / 18285 (ptype expr-with-xmethod ทำให้ SEGV)
- การเพิ่มประสิทธิภาพของสคริปต์ Python
- การรวบรวมโค้ดและการแทรกซอร์สโค้ดที่ด้อยกว่า
- คำสั่งใหม่ตัวเลือกตัวแปรสะดวก / ตัวเลือก
- การสนับสนุน MIPS SDE (mips * -sde * -elf *)
- การจัดการสัญญาณที่ดีขึ้นเมื่อแก้จุดบกพร่องโปรแกรมแบบเกลียว
- ประชาสัมพันธ์ symtab / 17642 ([7.8 regression] internal -error: resolve_dynamic_struct: การยืนยัน `TYPE_NFIELDS (type) & gt; 0 'ล้มเหลว)
- PR binutils / 17677 (_bfd_elf_get_synthetic_symtab ทำงานในความซับซ้อน O (n ^ 2))
- PR gdb / 16215 (SPARC: ไม่สามารถคำนวณ CFA สำหรับเฟรมนี้ได้)
- PR gdb / 17525 (target-async: คำสั่ง breakpoint ไม่ทำงานเมื่อเรียกใช้โปรแกรมจาก -x script)
- PR cli / 17828 ([7.8 การถดถอย] -batch -ex r breaks terminal)
- PR python / 17364 (ต้องการชื่อเครื่องพิมพ์ที่ดีกว่าใน bound_registers.py)
- PR build / 17104 (CFLAGS = & quot; -Wall -Wextra & quot; gdb / confgure - with-babeltrace failed)
- PR gdb / 17345 (babeltrace (1.1.2 และสูงกว่า) บ่นเกี่ยวกับข้อมูล ctf ที่สร้างโดย GDB)
- PR build / 17298 (gcore: ไม่สามารถลงทะเบียนได้: ไม่มีกระบวนการดังกล่าว)
- PR PRINT / 17342 (Xmethod Python ไม่ใช่โปรแกรม Python 3)
- PR python / 17355 (ข้อผิดพลาดเกี่ยวกับตัวกรองเฟรมของ Python ด้วยอาร์เรย์ที่อ่านไม่ได้)
- PR guile / 17367 (การคำนวณเส้นทางของ guild ไม่ถูกต้องเมื่อสคริปต์ pkg-config ระบุเป็น arg เพื่อ - with-guile)
- PR gdb / 17247 (gdb หยุดทำงานในแอปแบบมัลติเธรด)
- PR gdb / 17347 (การถดถอย: GDB หยุดทำงานโดยใช้กระบวนการที่แนบมา)
- PR gdb / 17407 (การถดถอยสำหรับการอ่าน vDSO Linux)
- เซิร์ฟเวอร์ PR / 17457 (aarch64 / gdbserver: แสดงการบันทึกจุดที่ไม่ถูกต้อง)
- เซิร์ฟเวอร์ PR / 17487 (สถานะ - & gt; dr_control_mirror == 0 การยืนยันล้มเหลวใน gdbserver บน Windows)
- PR gdb / 17472 (พร้อมคำอธิบายประกอบการป้อนข้อมูลในขณะที่ทำงานในเบื้องหน้าล่ม readline / gdb)
- PR gdb / 17471 (การทำซ้ำคำสั่งพื้นหลังทำให้เป็นส่วนสำคัญ)
- PR cli / 17300 (ล้มเหลวในโหมดไม่หยุดนิ่งและดำเนินการต่อ -a & (readline_callback_read_char () ที่เรียกโดยไม่มีตัวจัดการ!))
- PR python / 17372 (งูเหลือมแฮงค์เมื่อแสดงวิธีใช้ ())
- PR ธ ปท. / 17408 (../../gdb/infrun.c:5256: ข้อผิดพลาดภายใน: switch_back_to_stepped_thread: ยืนยัน '! schedlock_applies (1)' ล้มเหลว)
- การสนับสนุนการเขียนสคริปต์ Guile
- การเพิ่มประสิทธิภาพของสคริปต์ Python
- คำสั่งใหม่ตัวเลือกตัวแปรสะดวก / ตัวเลือก
- โปรโตคอลระยะไกลและการปรับปรุง GDBserver
- การกำหนดค่าเป้าหมายใหม่ (PowerPC64 GNU / Linux little-endian)
- การปรับปรุง btrace
- การสนับสนุนอาร์เรย์อัตโนมัติที่มีความยาวของตัวแปร ISO c99
- ส่วน & quot; ส่วนเปรียบเทียบ & quot; คำสั่งนี้ใช้กับเป้าหมายทั้งหมด
- ส่วน & quot; กำหนดเป้าหมายเนทีฟ & quot; ตอนนี้เชื่อมต่อกับเป้าหมายดั้งเดิม
- การสนับสนุนการเขียนสคริปต์ Python ที่ปรับปรุงแล้ว
- ปรับปรุงบางอย่างใน C + +
- คำสั่งใหม่ตัวเลือกตัวแปรสะดวก / ตัวเลือก
- คำสั่งและการปรับปรุงใหม่ GDB / MI หลายรายการ
- โปรโตคอลระยะไกลและการปรับปรุง GDBserver
- การกำหนดค่าเป้าหมายใหม่ (Nios II, TI MSP430)
- การสนับสนุนข้อมูลสนับสนุน GDB Windows x64
- SystemTap SDT probes support บน AArch64 GNU / Linux
- สนับสนุน CTF (Common Trace Format)
- สคริปต์ใหม่ gcore และ gdb-add-index.sh.
- ปรับปรุงแขนแล้ว * - สนับสนุนการเล่นแผ่น / ลินุกซ์
- ลบการสนับสนุนสำหรับ a.out การกำหนดค่าที่ล้าสมัยของ NetBSD และ OpenBSD ตัวแปร ELF ของการกำหนดค่าเหล่านี้จะได้รับการสนับสนุน
- ส่วน & quot; ตั้ง | แสดงการเรียกใช้ระยะไกล & quot; คำสั่งจะเลิกใช้เพื่อแสดง & quot; แสดง | แสดงลำดับชั้นอนุกรม & quot;.
- PR Breakpoint / 16251 (ข้อผิดพลาดจุดบกพร่องของฮาร์ดดิสก์ AArch64 หลังจาก ส้อม)
- PR gdb / 16303 (GDB 7.6.1 ใช้ไม่ได้กับ binutils 2.24 ใน MIPS16 และ microMIPS)
- PR tdep / 15420 (ไม่สามารถแก้ปัญหาโปรแกรมที่มีเธรดในเวอร์ชัน x86-solaris ใหม่กว่านี้ได้) - Solaris 10, อัปเดต 10 หรือใหม่กว่า)
- PR รีโมต / 15455 (แพ็คเก็ตระยะไกล QTro เสีย)
- PR build / 15476 (สร้างข้อผิดพลาดเนื่องจาก enum type ไม่สมบูรณ์ใน utils.h)
- เซิร์ฟเวอร์ PR / 15594 (tls สนับสนุน 64x32 x86 gdbserver ไม่ขยายที่อยู่ไปยัง 64 บิต)
- PR server / 15075 (dprintf inteferes with & quot; next & quot;)
- เซิร์ฟเวอร์ PR / 15434 (dprintf ใช้ synchronous 'continue' แม้ในโหมด non-stop)
- PR PRI / 14880 (ในรูปแบบการแบ่งการลงทะเบียนทำให้ผลลัพธ์ในการยืนยันล้มเหลวในค่า% c)
- PR c ++ / 15519 (GDB 7.6 ทำงานได้ช้ากว่า GDB 7.5.1 94 เท่าโดยใช้ไฟล์หลักบางไฟล์)
- PR gdb / 15837 (GDB พิมพ์ค่ารายการสำหรับตัวแปรท้องถิ่น)
- PR gdb / 15415 (gdb จะแก้ไขลิงก์สัญลักษณ์เมื่อส่ง argv [0])
- PR cli / 15603 (CTRL-C ไม่สามารถขัดจังหวะด้านล่างได้)
- PR gdb / 15604 (การถดถอยของรั่วไหลของเซิร์ฟเวอร์ gdbserver 7.5)
- ไปสนับสนุนภาษา
- เป้าหมายใหม่ (x32 ABI, microMIPS, Renesas RL78, HP OpenVMS ia64)
- การปรับปรุงสคริปต์ Python เพิ่มเติม
- รองรับการตรวจสอบ SDT (Static Defined Tracing) ด้วยเครื่องทดสอบ SystemTap
- การปรับปรุง GDBserver (การเชื่อมต่อ stdio การประเมินด้านจุดประสงค์การหยุดชะงักของเป้าหมายการปรับปรุงโปรโตคอลระยะไกล)
- การปรับปรุงอื่น ๆ (ความสามารถในการหยุดเมื่อโหลด / ยกเลิกการโหลดไลบรารีที่ใช้ร่วมกัน printf แบบไดนามิก ฯลฯ )
- การแก้จุดบกพร่องแบบย้อนกลับบน ARM
- ข้อมูลไบนารี & quot; gdbtui & quot; ถูกทอดทิ้งและไม่สามารถสร้างได้อีกต่อไป ใช้ & quot; gdb -tui & quot; แทน.
- ขณะนี้คุณสามารถข้ามฟังก์ชันและไฟล์ที่ไม่มีการสนใจไปกับการข้ามกับ & quot; ข้ามฟังก์ชัน & quot; และ & quot; ข้ามไฟล์ & quot; คำสั่ง.
- มีการเพิ่มคำสั่งสำหรับการตั้งค่าและการกำหนดความยาวสูงสุดของจุดสังเกตการณ์ฮาร์ดแวร์เป้าหมายแบบระยะไกล
- สคริปต์ Python ได้รับการปรับปรุงให้ดีขึ้นอย่างมากมาย
- มีการปรับปรุงแก้ไขข้อบกพร่องและการเปลี่ยนแปลงทั่วไปอื่น ๆ อีกมากมาย
- การสนับสนุนเป้าหมายใหม่ (รวมถึงเครื่องมือจำลอง):
- Xilinx MicroBlaze
- Renesas RX
- คุณลักษณะใหม่ ๆ ที่สำคัญคือ:
- การดีบักหลายโปรแกรมทำให้โปรแกรมดีบั๊กสามารถควบคุมได้มากกว่า
- หนึ่งโปรแกรมภายในเซสชัน GDB เดียวกัน
- แก้จุดบกพร่องอิสระในการดำเนินการ (PIE) แบบอิสระ
- นอกจากนี้ยังมีการปรับปรุงและแก้ไขข้อบกพร่องต่างๆ ได้แก่
- การสนับสนุน Python ได้รับการขยาย
- การปรับปรุงการสนับสนุน C ++ (เนมสเปซผู้ให้บริการส่งการแก้ไขข้อบกพร่อง)
- การปรับปรุงการสนับสนุน Tracepoint
- ปรับปรุงกระบวนการบันทึก (บันทึก / เรียกคืนบันทึกการดำเนินการฮาร์ดแวร์
- การสนับสนุนจุดสังเกต)
- การปรับปรุงโปรโตคอลระยะไกล (การดีบักเคอร์เนลของ Linux, แพ็กเก็ตใหม่
- สำหรับการสนับสนุน tracepoint)
มีอะไรใหม่ ในเวอร์ชัน 8.1:
มีอะไรใหม่ ในเวอร์ชัน:
มีอะไรใหม่ ในเวอร์ชัน 7.9.1:
มีอะไรใหม่ ในเวอร์ชัน 7.9:
มีอะไรใหม่ ในเวอร์ชัน 7.8.2:
มีอะไรใหม่ ในเวอร์ชัน 7.8.1:
มีอะไรใหม่ ในเวอร์ชัน 7.8:
มีอะไรใหม่ ในเวอร์ชัน 7.7:
มีอะไรใหม่ ในรุ่น 7.6.2:
มีอะไรใหม่ ในเวอร์ชัน 7.6.1:
มีอะไรใหม่ ในเวอร์ชัน 7.5:
มีอะไรใหม่ ในเวอร์ชัน 7.4:
มีอะไรใหม่ ในเวอร์ชัน 7.1:
ความคิดเห็นที่ไม่พบ