C/C++ã§ãƒ—ãƒã‚°ãƒ©ãƒ を書ã„ã¦ã„ã‚‹ã¨ãã«éé‡ã™ã‚‹åŽ„介ãªãƒã‚°ã®ä¸€ã¤ãŒãƒ¡ãƒ¢ãƒªãƒªãƒ¼ã‚¯ã§ã™ã€‚ 今回ã¯ãƒ¡ãƒ¢ãƒªãƒªãƒ¼ã‚¯ã‚’検出ã™ã‚‹ã®ã«ä½¿ãˆã‚‹ãƒ„ールã®ä½¿ã„æ–¹ã«ã¤ã„ã¦æ›¸ãã¾ã™ã€‚ AddressSanitizer コンパイルオプションをã¤ã‘ã‚‹ã ã‘ã§ä½¿ãˆã¦å‡ºåŠ›ã‚‚見やã™ã„ã®ã§ãŠã™ã™ã‚ã§ã™ã€‚ AddressSanitizerã¯GCC 4.8以é™ã‹LLVM 3.1以é™ã§ä½¿ã†ã“ã¨ãŒã§ãã¾ã™ã€‚ コンパイル時ã«ã‚ªãƒ—ションをã¤ã‘ã‚‹ã ã‘ã§ãƒ¡ãƒ¢ãƒªãƒªãƒ¼ã‚¯ã‚’検出ã—ã¦ãã‚Œã¾ã™ã€‚(若干実行時間ãŒé•·ããªã‚Šã¾ã™ï¼‰ 以下ã®ãƒ¡ãƒ¢ãƒªãƒªãƒ¼ã‚¯ã®ã‚るプãƒã‚°ãƒ©ãƒ leak.cpp を例ã«ä½¿ã„方を説明ã—ã¾ã™ã€‚ int main() { int *a = new int[10]; } newã§ä½œã£ãŸå‹•çš„é…列をdeleteã—ã¦ã„ãªã„ã®ã§ãƒ¡ãƒ¢ãƒªãƒªãƒ¼ã‚¯ã«ãªã‚Šã¾ã™ã€‚ g++ -fsanitize=address -fno-omit-frame-pointer -g l
{{#tags}}- {{label}}
{{/tags}}