Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Insure++
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Memory debugger software}} {{Infobox software | name = Insure++ | logo = Parasoft Logo 2017.png | screenshot = | caption = | collapsible = | developer = [[Parasoft]] | released = {{Start date and age|1993}} | latest_release_version = 2021.2 | latest_release_date = {{release date|2021|10|28}} | operating_system = [[Cross-platform]], [[Linux]], [[Solaris (operating system)|Solaris]], [[Microsoft Windows|Windows]] | language = English | genre = [[Profiler (computer science)|Profiler]] / [[Memory debugger]] | license = [[Proprietary software|Proprietary]] [[commercial software]] | website = {{URL|https://www.parasoft.com/products/insure}} }} '''Insure++''' is a [[memory debugger]] [[computer program]], used by [[software]] developers to detect various errors in programs written in [[C (programming language)|C]] and [[C++]]. It is made by [[Parasoft]], and is functionally similar to other memory debuggers, such as [[Purify (software)|Purify]], [[Valgrind]] and [[DynamoRIO|Dr Memory]].<ref name="survey">{{cite web|title=A Survey of Systems for Detection Serial Run-Time Errors|url=http://jjc.public.iastate.edu/Runtime.errors.Paper.March4.2006.pdf|work=Iowa State University High Performance Computing Group|accessdate=20 September 2010|archive-date=3 March 2016|archive-url=https://web.archive.org/web/20160303205737/http://jjc.public.iastate.edu/Runtime.errors.Paper.March4.2006.pdf|url-status=dead}}</ref> ==Overview== Insure++ can automatically find erroneous accesses to freed memory (use-after-free situations), array-bounds violations, freeing unallocated memory (which often happens when a programmer frees the same memory twice, or when he frees global or stack memory), and many others.<ref>{{cite book|page=490|last=Metzger|first=Robert|title=Debugging by Thinking: A Multidisciplinary Approach|year=2004|isbn=1555583075}}</ref> Unlike Purify and Valgrind, Insure++ inserts its [[Instrumentation (computer programming)|instrumentation]] at the source-code level,<ref>{{cite web|url=http://www.parasoft.com/insure|title=Parasoft Insure++ at Parasoft website|accessdate=January 29, 2014}}</ref><ref>{{cite book|title=API Design for C++|last=Reddy|first=Martin|page=239}}</ref>{{clarify|date=January 2013}} which allows it to detect errors that the other tools miss.<ref>{{cite book|title=Tools for High Performance Computing|page=147|last=Lier|first=Matthias|date=20 November 2010|isbn=978-3642112904}}</ref> In particular, Insure++ can detect [[buffer overflow]]s in automatic arrays, and overflows which involve pointers that accidentally "jump" from one valid memory region to another, as in the following example: <syntaxhighlight lang="c"> #include <stdlib.h> int main() { char *p = malloc(1024); /* first dynamically-allocated block */ char *q = malloc(1024); /* second block */ p += 1200; /* At this point, "p" is likely to point into the second block. However, false assumptions about the real behaviour lead to mistakes. */ *p = 'a'; /* invalid write (past the end of the first block) */ } </syntaxhighlight> The source-level instrumentation allows it to not only identify that a leak occurred, but where it occurred.<ref name="survey"/> Some tools merely provide information about where the memory was allocated, Insure++ also gives a stack trace for when/where the actual leak occurred. Additionally, Insure++ will produce [[Linear Code Sequence and Jump]] [[Code Coverage]] metrics for all tested code. ==See also== *[[Runtime error detection]] *[[Software development]] ==References== {{reflist}} == External links == * [http://www.parasoft.com/Insure Parasoft's ''Insure++'' site] * [http://www.linuxjournal.com/article/2951 Linux Journal review of Parasoft Insure++] [[Category:Memory management software]] [[Category:Debuggers]] [[Category:Software testing tools]] {{programming-software-stub}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Clarify
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Programming-software-stub
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)