Loading [MathJax]/extensions/tex2jax.js
Ask Your Question
1

Náhrada za Mudflap

asked Nov 16 '14

Martin Votruba gravatar image

updated Nov 18 '14

shejby gravatar image

Ahoj,

chci se zeptat, co se dá používat místo Mudflap? Zjistil jsem, že můj kompilátor gcc je verze 4.8., takže s Mudflapeme si neškrtnu. Vím že Vagner něco zmiňoval, ale nepamatuji se, jak se ten program jmenoval. Zkoušel jsem to Google ale nenašel jsem nic, co by mi fungovalo...

Comments

Vagner bez á.

Miro Hrončok (Nov 18 '14)

Teď mě prokleje, celou dobu na to dávám pozor, až mi to ujede, díky :-). ....Teda já blbnu ...to nebyl můj post ...akorát jsem se tam viděl, jak jsem upravoval tagy, každopádně jsem to v textu upravil.

shejby (Nov 18 '14)
add a comment

3 Answers

Sort by » oldest newest most voted
1

answered Nov 16 '14

shejby gravatar image

updated Nov 16 '14

Taky jsem to zapomněl, ale stačí chvilka googlu Oznámení gcc 4.9 a tady je Address Sanitizer

Jinak Valgrind asi taky není úplně k zahození.

link

Comments

Díky! Valgrind znám.

Martin Votruba (Nov 18 '14)

Trvalo mi dost dlouho to zjistit, ale CodeBlocks i NetBeans u Address Sanitizeru (-fsanitizer=address) odmítali kompilovat bez připojení toho samého přepínače k volání linkeru (t.j. například vedle -lm při použití math.c). Třeba se to někomu bude hodit...

Juraj Šedivý (Dec 5 '14)
add a comment
2

answered Nov 18 '14

gweana gravatar image

Pouzívám http://www.drmemory.org/. Běži to i pod woknama a mělo by to být rychlejší než valgrind.

link
add a comment
1

answered Nov 21 '14

Mudflap v gcc 4.8 normálně funguje. Address Sanitizer je obdoba téhož. Možnost hlídání kódu bez externích nástrojů jen tak z překladače nezmizí. Pouštět externí debugger není vždy optimální volba, zvláště pokud pouze potřebuji vědět, zda mám nebo nemám chybu v paměťových operacích. Hlídání chyb pomocí nastavení jedné proměnné shellu je také, přinejmenším, časově ekonomický přístup.

$ gcc -v
...
gcc version 4.8.3
$ gcc -Wall -pedantic -g -fmudflap -fmudflapir  mff.c -o mff -lmudflap
$ MUDFLAP_OPTIONS=-viol-segv ./mff
*******
mudflap violation 1 (check/write): time=1416585515.959987 ptr=0x7059e0 size=4
pc=0x7f287283f228 location=`mff.c:6:9 (main)'
      /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/libmudflap.so.0(__mf_check+0x18) [0x7f287283f228]
      ./mff(main+0x89) [0x400b46]
      /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f28724b3db5]
Nearby object 1: checked region begins 301B after and ends 304B after
mudflap object 0x705910: name=`malloc region'
bounds=[0x705850,0x7058b3] size=100 area=heap check=0r/0w liveness=0
alloc time=1416585515.959901 pc=0x7f287283f658
      /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/libmudflap.so.0(__mf_register+0x18) [0x7f287283f658]
      /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/libmudflap.so.0(__real_malloc+0xbf) [0x7f287284016f]
      ./mff(main+0x25) [0x400ae2]
      /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f28724b3db5]
number of nearby objects: 1
Segmentation fault
link
add a comment

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

Add answer

[hide preview]

Stats

Asked: Nov 16 '14

Seen: 368 times

Last updated: Nov 21 '14