__asm int 3
Valgrind http://www.valgrind.org/downloads/current.html
tar xvf valgrind-3.15.0.tar.bz2
cd valgrind-3.15.0
./configure
make
sudo make install
To detect.
valgrind --leak-check=yes ./your-application arg1 arg2
To uninstall
make uninstall
find /usr/local/include/valgrind/
rm -fr /usr/local/include/valgrind
find /usr/local/lib/valgrind/
rm -fr /usr/local/lib/valgrind
- デバッグオプションを付けて make すると、ソース位置も出力するようになります。
g++ main.cpp -o main -g
- ソース位置が正しく出力されない場合は、最適化もやめてみます。
g++ main.cpp -o main -O00 -g
void CreateDllConsole()
{
#ifdef DEBUG
setlocale(LC_ALL, "Japanese");
_tsetlocale(LC_ALL, _T("Japanese"));
AllocConsole();
FILE* fp = NULL;
freopen_s(&fp, "CONOUT$", "w", stdout);
freopen_s(&fp, "CONOUT$", "w", stderr);
#endif
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
CreateDllConsole();
...
}
わすれた
- 日本語文字列の操作に困ったら行くところ http://site.icu-project.org
warning C4566: ユニバーサル文字名 '\u00B5' によって表示されている文字は、現在のコード ページ (932) で表示できません (Microsoft Visual Studio 2015 Community, 2020-08-15)
-
ソースコードは UTF-8 with BOM で保管。
-
コンパイラの追加オプションに
/execution-charset:utf-8
または/utf-8
を追加する。- Microsoft Visual Studio 2015 Community
→ プロジェクトの設定
→ 構成プロパティ
→ C/C++
→ コマンドライン
→ 追加のオプション - なお
/source-charset:utf-8
は効かなかった。
- Microsoft Visual Studio 2015 Community
https://postd.cc/top-10-dumb-mistakes-avoid-c-11-smart-pointers/