Skip to Content.
Sympa Menu

svadev - Re: [svadev] Safecode driving me crazy :( :( :(

svadev AT lists.siebelschool.illinois.edu

Subject: Svadev mailing list

List archive

Re: [svadev] Safecode driving me crazy :( :( :(


Chronological Thread 
  • From: John Criswell <criswell AT illinois.edu>
  • To: Umesh Kalappa <umesh.kalappa0 AT gmail.com>
  • Cc: svadev AT cs.uiuc.edu
  • Subject: Re: [svadev] Safecode driving me crazy :( :( :(
  • Date: Thu, 3 May 2012 09:48:11 -0500
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/svadev>
  • List-id: <svadev.cs.uiuc.edu>
  • Organization: University of Illinois

On 5/3/12 7:00 AM, Umesh Kalappa wrote: Hello Everybody ,

I'm new to the safecode list and myself used valgrind extensively to detect the memory leaks at runtime and came to know about the safecode  project from LLVM IRC,so  thought of  using the same for runtime checks  and here is the steps  followed to compile and install the safecode 

1)Downloaded the latest safecode source from http://safecode.cs.illinois.edu/releases/sc-main.tar.gz

My apologies; I haven't updated the tar archive on the web site in awhile, so the code you're downloading is rather old.  I recommend fetching the latest version of the source code from the LLVM SVN repository.  The directions are at http://sva.cs.illinois.edu/docs/Install.html.

[snip]
=======+++++++    SAFECODE RUNTIME ALERT +++++++=======
= Error type                            :       Uninitialized/NULL Pointer Error
= Faulting pointer                      :       0xc0000001
= Program counter                       :       0x8
= Fault PC Source                       :       <unknown>:0
SAFECode: Fault!
SAFECode:Violation Type 0x9 when accessing  0xc0000001 at IP=0x8

As an FYI, the above error is occurring because of SAFECode's pointer rewriting feature.  When a pointer goes out of bounds, SAFECode rewrites the pointer value to point to unmapped memory.  Memory accesses using the rewritten pointer generate a fault, which SAFECode used to report as above.

We've since updated the load/store checks to detect rewrite pointers and print out more meaningful error messages like the one you see in the User's guide.

When I compile your program with the latest version of SAFECode, I get the following:

=======+++++++    SAFECODE RUNTIME ALERT +++++++=======
= Error type                            : Load/Store Error
= CWE ID                                : 120
= Faulting pointer                      : 0x100100319
= Program counter                       : 0x10000480e
= Fault PC Source                       : /Users/criswell/tmp/user/test.c:7
=
= Object allocated at PC                : 0x100004988
= Allocated in Source File              : /Users/criswell/tmp/user/test.c:17
= Object allocation sequence number     : 3
= Object start                          : 0x100100310
= Object length                         : 0x9
SAFECode: Fault!
SAFECode:Violation Type 0x6 when accessing  0x100100319 at IP=0x100004812


-- John T.




Archive powered by MHonArc 2.6.16.

Top of Page