2016-06-29 8 views
6

पर बैश के साथ काम नहीं करेगा वर्तमान में विंडोज़ पर उबंटू बैश पर llvm, clang, clang-format, और clang-modernize चला रहा है। मैं Google द्वारा जारी किए गए sanitize टूल के सेट का उपयोग करना चाहूंगा जिसमें पता, मेमोरी और थ्रेड सैनिटाइज शामिल हैं। Fsanitize विकल्पों में से कोई भी काम करने लगते हैं।पता sanitizer विंडोज

$clang++-3.5 -fsanitize=address -o1 -fno-omit-frame-pointer -g main.cpp -o main 
$./main 

परिणाम

==70==Sanitizer CHECK failed: build/buildd/llvm-toolchain-snapshot-3.5/projects/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc:211 ((IsOneOf(*current_, 's', 'p'))) != (0)(0,0) 

मैं पर प्यार सुझाव चाहते हैं:

#include <stdlib.h> 
int main() { 
    char *x = (char *)malloc(10 * sizeof(char *)); 
    free(x); 
    return x[5];// purposely accessing deallocated memory 
} 

यहाँ खिड़कियों पर बैश में बजना कॉल है:

यहाँ आसन के लिए कोड का नमूना है इसे कैसे काम करना है या यदि मैं उपकरण-श्रृंखला या कुछ का हिस्सा खो रहा हूं।

मुझे लगता है कि मैं मानता हूं कि मैं उबंटू या डेबियन को दोहरी बूट कर दूंगा, क्योंकि विंडोज़ के लिए क्लैंग में स्टडी: आउट सपोर्ट जैसी सरल विशेषताएं अनुपलब्ध हैं, हालांकि आदर्श रूप से मैं विंडोज़ लक्ष्यों और लिनक्स लक्ष्यों दोनों के लिए संकलित करने में सक्षम होना चाहता हूं। मैं दोहरी-बूटिंग से बचना चाहता हूं हालांकि उबंटू विंडोज स्टोरेज स्पेस को माउंट नहीं कर सकता है, लेकिन उन्हें विंडोज़ पर उबंटू बैश पर अच्छी तरह से पेश किया जाता है।

उत्तर

2

स्रोत कोड पर एक त्वरित झलक लेना - मेमोरीमैपिंगलाउट :: अगला - https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps_linux.cc - ऐसा लगता है कि मुद्दा यह है कि/proc फाइल सिस्टम के लिए विंडोज़ समर्थन पर उबंटू पर बैश अपूर्ण है।

जो कोड विफल रहता है वह/proc/self/maps को देख रहा है - जो वास्तव में - सही के बारे में प्रतीत होता है।

लेकिन मुझे अन्य सामान (उदा। नेटवर्किंग) मिला है/bashonwindowsonunix पर पूरी तरह टूटा हुआ है - इसलिए मुझे पूरा यकीन है कि हिस्सा प्रगति पर एक काम है।

संबंधित मुद्दे