Ask Your Question
1

Náhrada za Mudflap

asked 2014-11-16 14:01:58 +0100

Martin Votruba gravatar image

updated 2014-11-18 10:13:45 +0100

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...

edit retag flag offensive close delete

Comments

Vagner bez á.

Miro Hrončok ( 2014-11-18 06:39:48 +0100 )edit

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 ( 2014-11-18 10:12:59 +0100 )edit

3 Answers

Sort by » oldest newest most voted
1

answered 2014-11-16 14:31:57 +0100

shejby gravatar image

updated 2014-11-16 14:34:34 +0100

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í.

edit flag offensive delete publish link more

Comments

Díky! Valgrind znám.

Martin Votruba ( 2014-11-18 09:53:49 +0100 )edit

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ý ( 2014-12-05 14:21:29 +0100 )edit
1

answered 2014-11-21 17:12:25 +0100

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
edit flag offensive delete publish link more
2

answered 2014-11-18 13:08:39 +0100

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.

edit flag offensive delete publish link more

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: 2014-11-16 14:01:58 +0100

Seen: 368 times

Last updated: Nov 21 '14