Hi, I've been seeing a crash in llvm_gcda_emit_arcs() on x86_64. The crash occurs executing a movdqa instruction with an unaligned src address. The attached patch to the compiler-rt project fixes the problem by using memcpy() to read data from the write_buffer[] in GCDAProfiling.c. This is my first patch submission to llvm so please let me know if I've missed any steps. I'm not on the mailing list so please include me on any replies. I haven't run the tests on this change but would be happy to do so if someone could point me to documentation on how to do so. I couldn't find testing instructions linked from http://llvm.org/docs/DeveloperPolicy.html. I have built the change and run it with the programs I was testing originally. With this change the crash no longer occurs. Thanks, Joseph Kain -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130830/c9651628/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: memcpy-to-writebuffer.patch Type: application/octet-stream Size: 578 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130830/c9651628/attachment.obj>
Bill, could you take a look at this? I don't have a checkout of compiler-rt that builds. It seems obviously-correct to me, but I wish it did a compare against cur_buffer_size to make sure it's in range. Nick Joseph Kain wrote:> Hi, > > I've been seeing a crash in llvm_gcda_emit_arcs() on x86_64. The crash > occurs executing a movdqa instruction with an unaligned src address. > The attached patch to the compiler-rt project fixes the problem by > using memcpy() to read data from the write_buffer[] in GCDAProfiling.c. > > This is my first patch submission to llvm so please let me know if I've > missed any steps. I'm not on the mailing list so please include me on > any replies. > > I haven't run the tests on this change but would be happy to do so if > someone could point me to documentation on how to do so. I couldn't > find testing instructions linked from > http://llvm.org/docs/DeveloperPolicy.html. I have built the change and > run it with the programs I was testing originally. With this change the > crash no longer occurs. > > Thanks, > Joseph Kain > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Hi Nick, Thanks for looking over my patch. I'd be happy to add the compare against cur_buffer_size. I'll try to write up such a change today and then send a new patch to the list. Joseph Kain On Thu, Sep 5, 2013 at 1:37 AM, Nick Lewycky <nicholas at mxc.ca> wrote:> Bill, could you take a look at this? I don't have a checkout of > compiler-rt that builds. > > It seems obviously-correct to me, but I wish it did a compare against > cur_buffer_size to make sure it's in range. > > Nick > > Joseph Kain wrote: > >> Hi, >> >> I've been seeing a crash in llvm_gcda_emit_arcs() on x86_64. The crash >> occurs executing a movdqa instruction with an unaligned src address. >> The attached patch to the compiler-rt project fixes the problem by >> using memcpy() to read data from the write_buffer[] in GCDAProfiling.c. >> >> This is my first patch submission to llvm so please let me know if I've >> missed any steps. I'm not on the mailing list so please include me on >> any replies. >> >> I haven't run the tests on this change but would be happy to do so if >> someone could point me to documentation on how to do so. I couldn't >> find testing instructions linked from >> http://llvm.org/docs/**DeveloperPolicy.html<http://llvm.org/docs/DeveloperPolicy.html>. >> I have built the change and >> run it with the programs I was testing originally. With this change the >> crash no longer occurs. >> >> Thanks, >> Joseph Kain >> >> >> ______________________________**_________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/**mailman/listinfo/llvmdev<http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev> >> > >-- Joseph Kain -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130905/f7bbb11a/attachment.html>
Seemingly Similar Threads
- [LLVMdev] Fix crash in llvm_gcda_emit_arcs()
- [LLVMdev] Fix crash in llvm_gcda_emit_arcs()
- [LLVMdev] Fix crash in llvm_gcda_emit_arcs()
- [LLVMdev] undefined reference to 'llvm_gcda_start_file', 'llvm_gcda_emit_arcs', etc
- [LLVMdev] undefined reference to 'llvm_gcda_start_file', 'llvm_gcda_emit_arcs', etc