กลับไปหน้าบทความ

อ่าน 2 นาที

เพียวริฟายพลัส

PurifyPlusเป็น โปรแกรม ดีบักหน่วยความจำ ที่นักพัฒนา ซอฟต์แวร์ใช้เพื่อตรวจจับข้อผิดพลาดในการเข้าถึงหน่วยความจำในโปรแกรม โดยเฉพาะโปรแกรมที่เขียนด้วยภาษา CหรือC++เดิมทีเขียนโดยReed...

เพียวริฟายพลัส

ยูนิคอม เพอร์ริฟายพลัส
ผู้เขียนต้นฉบับซอฟต์แวร์บริสุทธิ์
นักพัฒนาUNICOM Systems ซึ่งเป็นแผนกหนึ่งของUNICOM Global
เวอร์ชันเสถียร
8.2 / 20 กันยายน 2024
ระบบปฏิบัติการวินโดวส์, ลินุกซ์, โซลาริส
พิมพ์ตัวดีบักหน่วยความจำ
ใบอนุญาตซอฟต์แวร์กรรมสิทธิ์
เว็บไซต์www.teamblue.unicomsi.com/products/purifyplus/

PurifyPlusเป็น โปรแกรม ดีบักหน่วยความจำ ที่นักพัฒนา ซอฟต์แวร์ใช้เพื่อตรวจจับข้อผิดพลาดในการเข้าถึงหน่วยความจำในโปรแกรม โดยเฉพาะโปรแกรมที่เขียนด้วยภาษา CหรือC++เดิมทีเขียนโดยReed HastingsจากPure Software [ 1 ] ต่อ มา Pure Software ได้ควบรวมกิจการกับ Atria Software เพื่อก่อตั้ง Pure Atria Software ซึ่งต่อมาถูกซื้อกิจการโดยRational Softwareซึ่งต่อมาถูกซื้อกิจการโดยIBMและต่อมาถูกขายให้กับUNICOM Systems , Inc. ในวันที่ 31 ธันวาคม 2014 โปรแกรมนี้ทำงานคล้ายกับดีบักหน่วยความจำอื่นๆ เช่นInsure++ , Valgrindและ BoundsChecker

ภาพรวม

PurifyPlus อนุญาตให้ทำการตรวจสอบแบบไดนามิก ซึ่งเป็นกระบวนการที่โปรแกรมค้นหาข้อผิดพลาดที่เกิดขึ้นขณะที่โปรแกรมทำงาน คล้ายกับดีบักเกอร์ ในทางตรงกันข้าม การตรวจสอบแบบคงที่หรือการวิเคราะห์โค้ดแบบคงที่ เกี่ยวข้องกับการตรวจจับข้อผิดพลาดในซอร์สโค้ดโดยไม่ต้องคอมไพล์หรือรัน เพียงแค่ค้นหาความไม่สอดคล้องกันทางตรรกะการตรวจสอบประเภทโดยคอมไพเลอร์ภาษาC เป็นตัวอย่างของการตรวจสอบแบบคงที่

เมื่อโปรแกรมถูกเชื่อมโยงกับ PurifyPlus รหัสตรวจสอบที่แก้ไขแล้วจะถูกแทรกเข้าไปในไฟล์ปฏิบัติการโดยอัตโนมัติ โดยการแยกวิเคราะห์และเพิ่มเข้าไปในโค้ดออบเจ็กต์รวมถึงไลบรารีต่างๆ ด้วยวิธีนี้ หากเกิดข้อผิดพลาดเกี่ยวกับหน่วยความจำ โปรแกรมจะพิมพ์ตำแหน่งที่เกิดข้อผิดพลาด ที่อยู่หน่วยความจำที่เกี่ยวข้อง และข้อมูลอื่นๆ ที่เกี่ยวข้องออกมา PurifyPlus ยังตรวจจับการรั่วไหลของหน่วยความจำได้อีกด้วย โดยค่าเริ่มต้น รายงานการรั่วไหลจะถูกสร้างขึ้นเมื่อโปรแกรมสิ้นสุดการทำงาน แต่ก็สามารถสร้างได้โดยการเรียกใช้ API การตรวจจับการรั่วไหลของ PurifyPlus จากภายในแอปพลิเคชันที่มีการติดตั้งเครื่องมือตรวจสอบ

ข้อผิดพลาดที่ PurifyPlus ตรวจพบ ได้แก่ การอ่านและการเขียนขอบเขตของอาร์เรย์ การพยายามเข้าถึงหน่วยความจำที่ไม่ได้จัดสรร การปล่อยหน่วยความจำที่ไม่ได้จัดสรร (โดยปกติเกิดจากการปล่อยหน่วยความจำเดียวกันเป็นครั้งที่สอง) รวมถึงการรั่วไหลของหน่วยความจำ (หน่วยความจำที่จัดสรรแล้วแต่ไม่มีตัวชี้อ้างอิง) ข้อผิดพลาดส่วนใหญ่เหล่านี้ไม่ร้ายแรง (อย่างน้อยก็ไม่ใช่ ณ จุดที่เกิดข้อผิดพลาด) และบ่อยครั้งเมื่อรันโปรแกรมโดยไม่มีวิธีใดที่จะตรวจพบได้ นอกจากการสังเกตว่ามีบางอย่างผิดปกติเนื่องจากพฤติกรรมของโปรแกรมที่ไม่ถูกต้อง ดังนั้น PurifyPlus จึงช่วยตรวจจับข้อผิดพลาดเหล่านี้และบอกโปรแกรมเมอร์ว่าข้อผิดพลาดเกิดขึ้นที่ใดอย่างแม่นยำ เนื่องจาก PurifyPlus ทำงานโดยการตรวจสอบโค้ดออบเจ็กต์ ทั้งหมด จึงตรวจพบข้อผิดพลาดที่เกิดขึ้นภายในไลบรารีของบุคคลที่สามหรือระบบปฏิบัติการข้อผิดพลาดเหล่านี้มักเกิดจากโปรแกรมเมอร์ส่งอาร์กิวเมนต์ที่ไม่ถูกต้องไปยังการเรียกใช้ไลบรารี หรือเกิดจากความเข้าใจผิดเกี่ยวกับโปรโตคอลสำหรับการปล่อยโครงสร้างข้อมูลที่ใช้โดยไลบรารี ข้อผิดพลาดเหล่านี้มักเป็นข้อผิดพลาดที่ยากที่สุดที่จะค้นหาและแก้ไข

ความแตกต่างจากดีบักเกอร์แบบดั้งเดิม

ความสามารถในการตรวจจับข้อผิดพลาดที่ไม่ร้ายแรงเป็นความแตกต่างที่สำคัญระหว่าง PurifyPlus กับโปรแกรมที่คล้ายกันจากดีบักเกอร์ ทั่วไป ในทางตรงกันข้าม ดีบักเกอร์โดยทั่วไปจะช่วยให้โปรแกรมเมอร์ค้นหาต้นตอของข้อผิดพลาดร้ายแรงได้อย่างรวดเร็ว เช่น โปรแกรมหยุดทำงานเนื่องจากการเข้าถึงค่าว่าง (null pointer ) แต่จะไม่ช่วยตรวจจับข้อผิดพลาดด้านหน่วยความจำที่ไม่ร้ายแรง ดีบักเกอร์มีประโยชน์สำหรับสิ่งอื่นๆ ที่ PurifyPlus ไม่ได้ออกแบบมาเพื่อทำ เช่น การตรวจสอบโค้ดทีละบรรทัด หรือการตรวจสอบหน่วยความจำของโปรแกรมด้วยตนเอง ณ ช่วงเวลาใดเวลาหนึ่งของการทำงาน กล่าวอีกนัยหนึ่ง เครื่องมือเหล่านี้สามารถเสริมซึ่งกันและกันได้สำหรับนักพัฒนาที่มีทักษะ

นอกจากนี้ PurifyPlus ยังมีฟังก์ชันอื่นๆ เช่นwatchpoint ประสิทธิภาพสูง ซึ่งมีประโยชน์โดยทั่วไปขณะใช้ดีบักเกอร์กับโค้ด

การใช้ PurifyPlus จะเหมาะสมที่สุดในภาษาโปรแกรมที่ปล่อยให้โปรแกรมเมอร์จัดการหน่วยความจำเอง เช่น ในภาษา Java , LispหรือVisual Basicการจัดการหน่วยความจำอัตโนมัติจะช่วยลดโอกาสการรั่วไหลของหน่วยความจำอย่างไรก็ตาม ภาษาเหล่านี้ก็ยังอาจเกิดการรั่วไหลได้ การอ้างอิงถึงอ็อบเจ็กต์ที่ไม่จำเป็นจะทำให้หน่วยความจำไม่สามารถจัดสรรใหม่ได้ IBM มีผลิตภัณฑ์ชื่อ Rational Application Developer ที่ช่วยตรวจจับข้อผิดพลาดประเภทนี้

แพลตฟอร์มที่รองรับ

แพลตฟอร์ม C/C++ ที่รองรับ

ระบบปฏิบัติการสถาปัตยกรรมโปรเซสเซอร์เวอร์ชันระบบปฏิบัติการคอมไพเลอร์
โซลาริส
ซัน อัลตร้าสปาร์คSolaris 11เวอร์ชันพื้นฐานถึง 11.4 Solaris 10เวอร์ชันพื้นฐานถึง U11Sun C/C++เวอร์ชัน 5.10 ถึง 5.15
AMD64 Intel 64Solaris 11เวอร์ชันพื้นฐานถึง 11.4 Solaris 10 U6 ถึง U11Sun C/C++เวอร์ชัน 5.10 ถึง 5.15
ลินุกซ์
อินเทล ไอเอ-32RHEL 9 (เซิร์ฟเวอร์/เดสก์ท็อป) เวอร์ชันพื้นฐานถึง 9.4 RHEL 8 (เซิร์ฟเวอร์/เดสก์ท็อป) เวอร์ชันพื้นฐานถึง 8.9 RHEL 7 (เซิร์ฟเวอร์/เดสก์ท็อป) เวอร์ชันพื้นฐานถึง 7.9 SLES 15เวอร์ชันพื้นฐานถึง 15.5 SLES 12เวอร์ชันพื้นฐานถึง 12.5GNU gcc/g++ เวอร์ชัน 4 ถึง 11
AMD64 Intel 64RHEL 9 (เซิร์ฟเวอร์/เดสก์ท็อป) เวอร์ชันพื้นฐานถึง 9.4 RHEL 8 (เซิร์ฟเวอร์/เดสก์ท็อป) เวอร์ชันพื้นฐานถึง 8.9 RHEL 7 (เซิร์ฟเวอร์/เดสก์ท็อป) เวอร์ชันพื้นฐานถึง 7.9 SLES 15เวอร์ชันพื้นฐานถึง 15.5 SLES 12เวอร์ชันพื้นฐานถึง 12.5GNU gcc/g++ เวอร์ชัน 4 ถึง 11
วินโดวส์
อินเทล IA-32 อินเทล 64 เอดีเอ็ม 64Microsoft Windows 10รุ่นพื้นฐานจนถึง 21H1 Microsoft Windows Server 2019รุ่น Standard และ Data Center Microsoft Windows Server 2016รุ่น Standard และ Data Center Microsoft Windows Server 2012รุ่น Foundation, Essential, Standard และ Data CenterMicrosoft Visual Studio เวอร์ชัน 2010 ถึง 2022

แพลตฟอร์ม Java/.NET ที่รองรับ

แพลตฟอร์มประเภทการรวบรวมข้อมูลสภาพแวดล้อมรันไทม์
วินโดวส์
การรวบรวมข้อมูลด้วย ภาษา C/C++ (โค้ดที่ไม่ได้รับการจัดการ)Microsoft Visual Studio เวอร์ชัน 2010 ถึง 2022
การรวบรวมข้อมูลความครอบคลุมของโค้ดJavaIBM JRE เวอร์ชัน 5 ถึง 8 SUN JREเวอร์ชัน 1.5 ถึง 1.8
การรวบรวมข้อมูล .NET (โค้ดที่จัดการได้).NET Framework เวอร์ชัน 3.0 ถึง 4.5 ใช้งานร่วมกับMicrosoft Visual Studio เวอร์ชัน 2010 ถึง 2022

ดูเพิ่มเติม

  • "การสำรวจระบบสำหรับการตรวจจับข้อผิดพลาดขณะทำงานแบบอนุกรม" โดยกลุ่มคอมพิวเตอร์ประสิทธิภาพสูงของมหาวิทยาลัยไอโอวา สเตท
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=PurifyPlus&oldid=1263009623 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เพียวริฟายพลัส

PurifyPlusเป็น โปรแกรม ดีบักหน่วยความจำ ที่นักพัฒนา ซอฟต์แวร์ใช้เพื่อตรวจจับข้อผิดพลาดในการเข้าถึงหน่วยความจำในโปรแกรม โดยเฉพาะโปรแกรมที่เขียนด้วยภาษา CหรือC++เดิมทีเขียนโดยReed...

ภาพรวม

PurifyPlus อนุญาตให้ทำการตรวจสอบแบบไดนามิก ซึ่งเป็นกระบวนการที่โปรแกรมค้นหาข้อผิดพลาดที่เกิดขึ้นขณะที่โปรแกรมทำงาน คล้ายกับ ดีบักเกอร์ ในทางตรงกันข้าม การตรวจสอบแบบคงที่หรือ การวิเคราะห์โค้ดแบบคง ที่ เกี่ยวข้องกับการตรวจจับข้อผิดพลาดใน ซอร์สโค้ด...

ความแตกต่างจากดีบักเกอร์แบบดั้งเดิม

ความสามารถในการตรวจจับข้อผิดพลาดที่ไม่ร้ายแรงเป็นความแตกต่างที่สำคัญระหว่าง PurifyPlus กับโปรแกรมที่คล้ายกันจาก ดีบักเกอร์ ทั่วไป ในทางตรงกันข้าม ดีบักเกอร์โดยทั่วไปจะช่วยให้โปรแกรมเมอร์ค้นหาต้นตอของข้อผิดพลาดร้ายแรงได้อย่างรวดเร็ว เช่น...

แพลตฟอร์ม C/C++ ที่รองรับ

ระบบปฏิบัติการ สถาปัตยกรรมโปรเซสเซอร์ เวอร์ชันระบบปฏิบัติการ คอมไพเลอร์ โซลาริส ซัน อัลตร้าสปาร์ค Solaris 11 เวอร์ชันพื้นฐานถึง 11.4 Solaris 10 เวอร์ชันพื้นฐานถึง U11 Sun C/C++ เวอร์ชัน 5.10 ถึง 5.15 AMD64 Intel 64 Solaris 11 เวอร์ชันพื้นฐานถึง 11.