質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

519閲覧

clang++でsanitizerが終了できない。シグナルを送っても終了できないため、解決方法を教えてほしい。

Kchan_01

総合スコア110

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2022/01/14 01:04

編集2022/01/14 01:43

clang++でサニタイザーを使用しています。サニタイザーでエラーが出たときに起きたとき、ずっと標準入力を受け付けている状態になり、シグナルを送っても終了できません。terminalを再起動するしか方法がないのが現状です。

原因の特定方法や、解決方法をご存知の方がいらっしゃったら教えてください。

実行コマンド

shell

1clang++ test.cpp -g -fsanitize=address && ./a.out

サニタイザーエラー内容

shell

1previously allocated by thread T0 here: 2 #0 0x10218cd9d in wrap__Znwm+0x7d (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x50d9d) 3 #1 0x10211eb54 in void* std::__1::__libcpp_operator_new<unsigned long>(unsigned long) new:235 4 #2 0x10211ea98 in std::__1::__libcpp_allocate(unsigned long, unsigned long) new:261 5 #3 0x102117233 in std::__1::allocator<int>::allocate(unsigned long) allocator.h:108 6 #4 0x10211ec6e in ft::vector<int, std::__1::allocator<int> >::__vallocate(unsigned long) vector.hpp:164 7 #5 0x10211ebfd in ft::vector<int, std::__1::allocator<int> >::vector(unsigned long) vector.hpp:29 8 #6 0x1021172ac in ft::vector<int, std::__1::allocator<int> >::vector(unsigned long) vector.hpp:28 9 #7 0x10211545e in main vector_test.cpp:43 10 #8 0x7fff204dcf3c in start+0x0 (libdyld.dylib:x86_64+0x15f3c) 11 12SUMMARY: AddressSanitizer: double-free (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x511bd) in wrap__ZdlPv+0x7d 13==66779==ABORTING

環境

shell

1❯ clang++ -v 2Homebrew clang version 13.0.0 3Target: x86_64-apple-darwin20.6.0 4Thread model: posix 5InstalledDir: /usr/local/opt/llvm/bin 6 7❯ sw_vers 8ProductName: macOS 9ProductVersion: 11.6 10BuildVersion: 20G165

試したこと

  • ctrl + c, d, z等のシグナルを送る => 終了できず
  • psを使って、プロセスIDを特定しkill -p プロセスIDを実行 => 終了できず
  • 標準のzshからbashを起動して、同様のことを再実行。=> 同様のバグが出ます
  • brew uninstall llvmでclang++をアンインストールして、デフォルトのclang++を使用しても同様のバグがでます。
  • -fsanitize-recover=addressにフラグを変更して実行したが、同様のバグがでます。

わかったこと

デフォルトのターミナルを開いて実行したところ、正常終了しました。
vscode起因のバグだとわかりました。

現在原因を調べています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/01/14 01:29 編集

すみません、質問の意図を読み間違えていました。
Kchan_01

2022/01/14 01:27

ご返答ありがとうございます。 -fsanitize-recover=addressで実行しましたが、終了せず標準入力受付になる状態は変わりませんでした。
melian

2022/01/14 01:30

すみません、入れ違いになりましたが、最初のコメントの内容は質問を誤って捉えていました。お手数をおかけしました。
guest

回答1

0

自己解決

MacOSのアップグレードをして、xcodeもインストールし直すことで解決しました。

投稿2022/01/14 02:30

編集2022/01/15 06:11
Kchan_01

総合スコア110

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問