Afin d’avoir une meilleure protection contre les cas d’UB comme:
#include int f(){ int x; return x; } int main() { f(); while(1); return 0; }
J’ai mis à jour mon GCC aujourd’hui pour pouvoir utiliser ubsan . Ma version actuelle est 5.3.0 selon gcc --version
. Je pensais qu’Ubsan serait ajouté par cette mise à jour, mais il semblerait que ce ne soit pas parce qu’après la compilation avec C:\Users\my_name\Desktop>gcc -fsanitize=undefined ac
c’est ce que j’ai:
c: / mingw / bin /../ lib / gcc / mingw32 / 5.3.0 /../../../../ mingw32 / bin / ld.exe: impossible de terminer d -lubsan
Maintenant, j’ai vu ce post mais le système d’exploitation est Ubuntu 15.04
et j’utilise Win 8.1
donc cela ne m’a pas aidé. Un des commentaires ici dit:
Vous devrez installer le paquet libubsan.
mais je ne sais pas s’il était destiné à windows/ubuntu
, et même si c’était pour les utilisateurs de windows
, je ne comprends pas comment le faire.
edit: J’ai aussi essayé de comstackr gcc -fno-sanitize=all ac
(il y a beaucoup d’options ici ) et cela compilé sans avertissement, donc je suppose que GCC
reconnaît le désinfecteur en quelque sorte essayer pour une raison quelconque