議——學(xué)習(xí)到的編譯工具)
目錄工具1.Asan工具神器AddressSanitizer地址消毒劑2.編譯選項(xiàng)日常ASan系列工具Linux與WIn地址對比 Linux vs Windows 地址對比錯(cuò)誤碼盡量打印giteeTCPCustomize協(xié)議實(shí)現(xiàn)計(jì)算器復(fù)習(xí)必看 額外Protocol.hpp [267]總結(jié)遇到的bug 設(shè)計(jì)原則應(yīng)用層類型野指針養(yǎng)成習(xí)慣g -g -fsanitizeaddress,undefined -Wall -Wextra -o main main.cpp工具1.Asan工具神器AddressSanitizer地址消毒劑編譯選項(xiàng) -fsanitizeaddressg -g -fsanitizeaddress -o main main.cpp直接定位錯(cuò)誤之處太逆天了。2.編譯選項(xiàng)g -g -Wall -Wextra -Wuninitialized -o main main.cpp習(xí)慣以后均使用 -g -Wall -Wextra -Wuninitialized這可不是我說的是指導(dǎo)級日常g -g -fsanitizeaddress,undefined -Wall -Wextra -o main main.cppASan系列工具Linux與WIn地址對比Linux vs Windows 地址對比特性Linux (64位)Windows (64位)地址范圍0x555555555xxx或0x7fffxxxx0x00007ff7xxxx或0x000001xxxx典型堆地址0x555555xxxxxx0x000001xxxx典型棧地址0x7fffxxxxxxxx0x000000xxxxx典型大小48 位有效地址44-48 位有效地址錯(cuò)誤碼盡量打印fprintf(stderr, fail: %s (errno%d, ret%d)\n, \ strerror(errno), errno, ret);