Valgrind 1.0.0 Released
Anonymous Lazy Boy writes "Yesterday saw the official release of Valgrind 1.0.0. Valgrind is a C/C++ programmer's dream come true: effortless memory allocation checking, uninitialized memory access, leaks etc. Purify for Linux has arrived, only better: contrary to its commercial (non-Linux) sibling, checking is performed directly on the executable, no re-linking necessary.
The technology behind Valgrind is highly fascinating and explained down to the very gory details in the documentation."
This may be a practical tool in some respects, but I would not have so much respect for someone who depended on that to have any working code. As the old saying goes, "real programmers read core dumps."
Calm down, it's *only* ones and zeroes.
Did anybody else read that as "Viagra"? Might have something to do with the poll...
-- Wibble
sorry, that was off topic, but this C++ this is happy news for me
Well, Valgrid doesn't handle UMCs, and it does have a lot of shortcomings, like cleaning up MMX code etc.
Calling it a Purify-killer at this point, only shows that you have never used Purify.
One thing I've found with automated QA products is that usually they have critical faults that prevent them from being realistically useful (for instance many of them grind to a halt or give false positives in multithreaded apps). How's this product for real world use? (And no this isn't a "Read the Article!" question...the article is like a press release and hence doesn't answer my question).
the better the debugger, the more errors its gonna catch. hopefully it'll be easier for people to catch and fix memory leaks now.
sigh...the only thing is...i wish it were for windows...thats where i have problems with people writing programs with memory leaks (at least moreso than on my linux boxes)
You could write your code in Java (shuder!), and then use the Java frontend to GCC to compile it down to a blazingly fast 100% native-code binary. And you can do it all without ever using non-free software (unlike Sun's compilers/JVMs).
You mean like this program?
Valgrind really is an amazing bit of software. Working on large application which use many different libraries it becomes harder and harder to work out where those bugs are, and all the free tools I have tried so far have done a very poor job of finding them. I have now been using valgrind for several months, and got 1.0 straight from the author by mail having reported a few bugs in earlier versions. It speeds up finding those hard to reproduce bugs, and often shows up memory errors which you didn't even know were there. It is also excellent for detecting memory leaks as it knows the difference between memory that has been genuinly leaked, and memory which is not freed, but still has a reference to it stored when the program exits. All the software I work on is now much more robust than it was a few months ago, and much of this I can put down to valgrind being available. This is the only free tool that comes close to the commercial tools like Purify, and in many ways it is superior to some of the expensive high end tools. The author is extremely responsive and helpful, and has been developing valgrind full time self funded.
I bet you can't say that backwards ;o)
[JJ]
"Insert Dead Smart n Clever Sig Here So I Look Brainy"
Valgrind rocks
;-)
.....
companys should employ this man (he did work for MS research labs here in cambridge
I found bugs in GDB because of valgrind so hey debug a debugger
also lanch your GNOME or KDE app and report those memory leaks
also has Bzip2 on the CV
respect
regards
John Jones
p.s. Julian I owe you a beer contact me at work
I've been waiting for this. I've seen the malloc debuggers and the like (electric-fence, gccchecker, etc), but they're all incomplete, have problems with C++ code, or are just for allocated memory ('new'-ed objects, malloc()-ed data, etc), not for regular vairables: statics, local variables, etc.
But valgrind seems to be just right I gave it a quick tryout and it is looking good!
Wow.
apt-get install valgrind.
And all we need now is a gvalgrind, and/or a kvalgrind gui interface just like purify has and I'm all happy.
--- Hindsight is 20/20, but walking backwards is not the answer.
Maybe now it'll actually be possible to plug up those damn memory leaks.
Wow, actually I see what you mean. That's pretty damn sneaky.
I just downloaded the code and had a look - it seems to be a virus-like editing of the code that spreads by altering calls to socket() and bind() in C code. Bizarre.
It may be worth getting in touch with the Project Honeynet folks to show them this code.
Same for me also, from a UK broadband ISP:
b 4d94ae
$ md5 < valgrind-1.0.0.tar.bz2
76c59f7f9c57ca78d733bd956
$
Something odd going on here.
Balmer readily admits that Linux starting to gnaw away at their base.
It's only a matter of time, lads. Only a matter of time.
One of the many great things about purify is that (IME) it only slows down your code by 10-20%, which is small enough that you can always leave it in your code. Leaving it in for unit testing, integration testing, system testing, beta testing, etc., can make your life much easier.
Valgrind, however, runs your code 20-50 times slower, which means you can't have it on all the time. This is unfortunately, for it looks like a great tool, otherwise.
I don't believe you are telling the truth. You are fibbing. Microsoft applications are less reliable than ever. MS hasn't got a clue as to what quality means. All the smart software engineers work somewhere else. Microsoft recruits what's left over. Scan the net for published papers. It's hard to find a significant contribution originating from Microsoft. If you find a published paper from Microsoft it is invevitably something highly parochial and not applicable to CS at large. You know what I mean: "Optimizing OLE Objects in a VB Environment". You get the picture.
Sorry guys, but as far as C/C++ development goes, nothing beats an XP box with Visual Studio 7, Intel C/C++ 6 and Rational PurifyPlus.
Having said this, there's (imho) nothing wrong with using closed source tools to write open source software. It's what I've been (paid to be) doing pretty much every day for the past five years or so.
Valgrind, alas, does nothing much to help. I think some of the major open source projects would be a lot healthier if the developers had nicer environments. (see e.g. mozilla for what can happen when your developers aren't crippled in GCC/gprof/valgrind land)
Hum,
:)
[chicken]~> vagrind valgrind
seems to work ok. But valgrinding a valgrinded valgrind causes some ugly errors and asks for a bug report. Well, I know this isn't fair.
Anyways, this looks like a really sweet tool.
They've made a virtual machine that copies x86 architecture - all the benefits of Java debugging bought to C/C++. Nice.
-- Mike
I Had to debug GDB and Valgrind helped me find memory leaks in this and gdbTK
GDB is pretty icky so thats a ugly program for you it also managed to debug my ARM/MIPS sim which is small
overall I give it 5 stars
regards
john jones
Hmmm... me too. I actually read it as the anagram "Dr. Vaginl."
Could it be that there is something wrong with the languages which we use? You know darn well that there's something wrong! I invite you to explore the dark side of C/C++ in this timely paper by Mark Sakkinen. Hey folks, let's use better technology which is inherently safer. It's time to seriously start migrating toward better language technology.
Please don't feed the trolls. All the posts claiming a backdoor in Valgrind and supposedly responding to each other ("Hey, I found it too!" "Me too!" "Here's what I got!") were all posted by the same person.
I do hope that the moderator whom is labeling these posts as "trolls" has done his/her homework regarding the accuracy of this and following posts...
I was just reading this thread and everything was +2/+3 informative. Suddenly everything has been knocked to 0/-1. Did we discover some relevant piece of information about the posting ACs that made that a wise decision? This sounds like it's at least kind of important. What's going on?
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_s
And contrary to what you may think, it's qiute easy to use:
Or even easier: make your classes derived from gc.
In C, you just replace malloc.
And I have found that there is no slowdown wen using a garbage collector. It's nice, and keeps the code clean. Try it someday.
I think they are used for IPC.
Hi. KDE developer here. We've checked developer.kde.org (the machine hosting Valgrind) and the md5sums. So far this looks like a hoax, so please move on. We will stay on the alert and continue investigating, but to quote one of my favourite authors: don't panic.
I'm on a bellsouth adsl connection
halcyon:~$ md5sum valgrind-1.0.0.tar.bz2
76c59f7f9c57ca78d733bd956b4d94ae valgrind-1.0.0.tar.bz2
halcyon:~$
(18:14:38)(~/src/valgrind-1.0.0): grep open vg_scheduler.c
(18:14:45)(~/src/valgrind-1.0.0): grep 11 vg_scheduler.c
02111-1307, USA.
(18:14:52)(~/src/valgrind-1.0.0):
Please don't feed the trolls
Thanks for pointing out the same-IP thing, but (a) wouldn't it be better to respond to the bogus post so that people see it if they read that post, and (b) I think the "Please don't feed the trolls" bit was unwarranted -- there's no way for ordinary users to know that the posts were all from the same IP.
i've been using valgrind for a couple months now. it's great!
valgrind is freely downloadable *with* the source. Here we have someone that has put toghether a very impressive tool which, you admit yourself, does things that require 3rd party tools to do on Windows, and all you find to say "I don't care because stuff on Windows sorta maybe does it anyways".
Instead of commending somebody on their very talented effort and for making it all Free, all you do is make loud claims that memory management isn't the way of the future for "us l33t modern day programmers"-- followed by the amazing claim that C memory allocation is somehow sub-optimal.
The fact is that for all that vaunted "10 years" advance you claim the Microsoft C runtime has, memory management has been the bane of every product Microsoft ever produced.... I still get company wide emails twice/thrice weekly of this or that exchange server needing to be rebooted again.
If I had mod points, I most certainly would have modded you a troll.
Do not spread "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0" over the internet, thank you.
Even open source developers get mod points sometimes...
Hi,
. bz2. md5sum
I have just verified that we have no evidence of
a backdoor in valgrind.
This is the correct md5sum
76c59f7f9c57ca78d733bd956b4d94ae valgrind-1.0.0.tar.bz2
I will put this information also online on
http://www.kde.org/md5sums/valgrind-1.0.0.tar
So you can check this information via a second channel.
Yours,
-- martin
P.S.: The AC claims incorrectly that exact the above md5sum indicates a compromised archive which is plain wrong!
oh please... SGI had fix and continue plus debuggers way better than VS7 8 years ago. Proper interactive debugging (type call blabla::XX(5,8) to step into member function etc and purify hasn't improved since rational bought it.
http://rareformnewmedia.com/
Just my 2c
There is no "GNU version of Java".
GCJ supports everything in Java 1.2 except for AWT (most people aren't using Java for GUIs anyways), almost all of the 1.3 stuff, and a large portion of the 1.4 stuff.
Most Java software out there today (Tomcat, etc) is designed for Java 1.2. Not much changed in 1.3/1.4.
In a pinch, you can actually take the .jar's from Sun's Java distro, run them through GCJ, and get native code binaries. You can't redistribute these, but it's handy if you're writing server code rather than shrinkwrapped software.
Could some kind of merge be possible, adapting Bochs to use Valgrind's simulator without the malloc-checking stuff? Also, I wonder if Valgrind could be adapted to simulate other CPU's besides the x86.
The source I downloaded (http://developer.kde.org/~sewardj/valgrind-1.0.0. tar.bz2) didn't have a 'vg_schedular.c' ; and the closest-looking filename ('vg_scheduler.c') did not contain any calls to socket or bind, or the strings 11, 0B or 0xB. Of course this is not to say that the file does not do this, because any backdoor-writer worth his salt would obfuscate it under lots of #defines and such. I would like to see the original poster (or anyone else with the same compiler) paste the compiler output, including the line numbers involved, and also say where he got the source from.
Trolls are busy at work today I see.
I actually wasted about 15 minutes looking into this.
I've just grepped through vg_scheduler.c looking for `bind', `sock', `11', `RAW', `raw', and several others. I've come up with absolutely nothing. Admittedly, I haven't checked out the entire source--at 3500 lines, it'd take me several days to do a proper audit--but so far I haven't found any references to socket calls anywhere.
:)
Still, I would appreciate it if the maintainer could check out vg_scheduler.c and see if there's something amiss there. Thanks.
C-style memory allocation is the basis for any garbage collection system. It may not be the right tool for every job -- certainly it is smart to build a more powerful system atop it -- but it is not obsolete, and never will be as long as programming remains in an environment similar to what we have today. And it is optimal for what it does. That's why you build a GC on top of it, and not the other way around.
And of course, you have to be careful with claims that garbage collection is some sort of panacea. I almost never use new and delete in C++, for example, because I have automatic local variables, implicit temporaries, and deterministic destruction at the point where either go out of scope. People somehow think that it's clever that you can write
in Java, and that if you write
in C++ it's inferior because you have to delete it afterwards. They ignore the fact that the vasty majority of the time, you're actually going to write simply
instead, and have no worries about releasing memory, or failing that, you're going to use a suitable smart pointer class and similarly have no worries. And in languages with "low level" allocation like C++, you get deterministic destruction in the picture as well, which is a massive advantage over the GC approach as evidenced in languages such as Java (and many others, too).
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Fix and continue is a bit of a joke. I'd like to think that I don't write software so poor that it actually saves time to be able to fix a bug and move immediately onto the next one without stopping, thinking, and rebuilding. ;)
;)
;)
At any rate, I've yet to see an IRIX debugger 'way better than VS7'. How is it way better?
Speedshop sucks ass compared to a Quantify/VTune combo.
SGI don't have a compiler even close to the Intel compiler (I'm talking C++ compliance, here.), despite the fact that they both use the EDG front end.
As for purify... how would you improve it? It's one of the few pieces of software around that is just.. done? It's complete. I use it, and I've never thought 'argh, I wish it could do..' Seriously, what is purify lacking?
P.S. the dev team (who I email from time to time) have stayed completely intact (save for the odd "background" coming and going)) from the time they were Pure, through Pure/Atria, and now Rational. Purify is the result of corporate takeover done right.
Can you imagine what would've happened if MS bought purify?
True. I suppose my comment should be something along the lines of, "Please don't use your user accounts to raise the awareness of something posted anonymously unless you, personally, have verified it and vouch for it."
1.0 is available in unstable.
Cool.
Seriously... This is about the only *useful* thing that I can see using processor power for. I'd much rather make a weekly run-through with this type of software rather than having transparent menus or chirpy paperclips saying "you might have leaked memory, would you like to learn how to write a memo?"
:^)
Developers workstations are *supposed* to be bigger better faster more than those of the plebes, and don't you forget it!
--Robert
Today BitWagon offers a profiling product tsprof which requires no recompile and no relink, and handles main programs, shared libraries, dynamic modules, pthreads, and SMP; does direct time and event measurement based on hardware counters (no sampling) and provides highly effective interactive graphic output in addition to tabular text. So far, response again lags. Maybe Rational is onto something.
Riiiiight -- Microsoft hasn't ever published anything that is applicable to CS at large.
b .a sp
http://research.microsoft.com/scripts/pubs/trpu
Well, this is the reason why I gave the pointer /. account.
to www.kde.org so that people can verify the md5sum without the need for me to get a
Regards,
--martin
What is this "C/C++" language? I've heard of C, and I've heard of C++, but not C/C++.
I run it on my game ( Escape Of the Unicorn ) and found first memory bugs. This tool is great - we will fix a lot of leaks now!
Valgrind is very slow, but it's worth to run it on all programs you are writting. It even displays some bugs related to SDL/XFree86, but a lot of its output is usable.
Hi, if you have them handy, I'd totally appreciate if you can share any performance numbers. I'm not being facetious at all, I am the anti-slashdot, and am truly interested! I'm doing research on memory leak debugging, so data is the drug I desire. :D
thanks!
nick
Here's some suggestions :
1) don't charge such an absurdly large price
for software mostly built on free software
(Mikael's perfctr)
2) accept that when you have competition that
is free software, it's gonna beat you.
[Disclaimer: I am indeed the lead developer for
your competition]
-- Remove the trailing '\0' to email me.
OK,so you're a Java programmer, fine, continue to use it, no worries there.
Reasons for using C/C++ include complete control over execution, deterministic behaviour of application and raw speed. For memory allocation in C++ malloc() is no longer necessary, use , , etc. The reason why C++ does not have a standard garbage collector is that the ISO committee thought that adding one would hamper performances too much for little return.
FYI C and C++ actually have an ISO/ANSI standard, so does C, unlike Java. The last revision of C was in 1999 and it includes variable length array (VLAs). Personally I will not touch Java for anything important until it is standardised.
You are right about a standard GUI though, that would be nice. However existing GUIs aren't `standard'. The difference in the way of thinking and in general appearance between, say, MacOS/X and Windows is still big. Sure they both have buttons, dialogs and lists but the similarity end pretty quick. If you wanted an advanced application that looked native and worked on both you would be severely limited in your choice of widgets.
I guess you've never heard of Qt.
Get a clue.
C++ will do just fine without your support.
Go back to coding in the lowest common denominator.
Hi everyone,
I'd just like to reitterate the "Valgrind rox" sentiment flowing through here. We've used valgrind extensively on AbiWord with excellent effect.
This is a great program. BTW the $0 price really helps us as where 100% volenteer.
The author is great too. He is very quick to respond to issues.
Cheers
Martin Sevior
AbiWord Eveloper
Still, why not do it that way? Machine resources are cheap.
It would be extremely useful if Purify gave you the stack trace of the last piece of code to access leaked memory. Having it show when this memory was first allocated is interesting, but not nearly as useful as who used it last.
Moderation privs should not be used to suppress opinions with which you disagree.
What is preventing this program from being ported to other operating systems like FreeBSD and MacOS X?? It seems like a useful tool, is there a short explanation why it is Linux-only?
... but I try not to dream in and/or about C/C++. It hurts. :)
On the other hand, dreaming in perl is probably pretty close to the programmers version of an acid trip. The colors!
Just wondering if this would be an ideal tool for mozilla to use. Know if any developer has tried this?
For most applications, it just makes better sense to avoid these errors altogether by using a good garbage collector.
An excellent implementation is the Boehm-Demers-Weiser (commonly referred to as just "Boehm gc") conservative gc. It can be used for C/C++, and is highly portable. It's a real-time, non-compacting (so you still get heap fragmentation like managing memory by hand, but the collection time is shorter and it's more portable), and uses a conservative mark-sweep algorithm (briefly, treats anything that looks like a pointer as a pointer, to avoid costly checks or increase portability in the case of C/C++.)
For a moderately large amount of garbage, the incremental collection pauses take less than about 5-10 milliseconds (hence why it's a real-time collector) on a PIII-500, the algorithm scales fairly well, and it's suitable for all but the most time-critical (anything video related) or memory-thrashing (I really don't know of any app that needs to be) programs. GC will speed up development time tremendously, and can eliminate segmentation faults and memory leaks for most programs. I really don't understand why more projects don't use it.
That being said, Valgrind does seem extremely useful for projects that do need to allocate memory manually. It looks very convenient to use, and the thoroughness of the checks is impressive. The implementation does seem a little uncomfortable to me - it's certainly a lot of effort to write a whole virtual machine just for the task! The portability prospects aren't appealing either.
In the great CONS chain of life, you can either be the CAR or be in the CDR.
(let ((I (get '*lisp* 'programmer))) ,no-worry-about-GC)
:memory-management
:optimization
:ease-of-use t))))
`(been I
(setf (get 'I 'skill) '(good programming techniques))
(with-carelessness
(learnt (have I) 'to-code
(with-no-worry-about
Yes, WxWindows is portable, but it's broken by design and severely lacks features - not to mention that WxGTK is poorly maintained. Have you ever used WxWindows? You're better off just writing your own graphics API and writing a frontend for each platform you want to run on.
There is a problem with C/C++, and this isn't the solution. THIS is the solution.
A lot of people seem to be saying, "Just use a good GC".
But from reading the Valgrind docs, it's more than just a GC. It checks for accessing memory through uninitalized variables, too... Very cool.
Disclaimer: I have not used valgrind yet, just read the online docs
General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
And wouldn't you really rather be told when the dynamic linker has added or removed modules? The current interface to DT_DEBUG, _r_debug.r_brk, _dl_debug_state might be suitable for a controlling process, but it's painful for a same-process debugger. For instance, on x86 there might be only one byte of code at _dl_debug_state(), so you cannot easily overwrite it with an arbitrary transfer of control. And if you use an int3 and SIGTRAP handler, then you cannot run gdb at the same time.
please post more!
I beg of you...as I stand naked in front of the mirror...
ah yes.
it's great the heter's are re-claiming slashdot's posting. Katz will be last to go 'cause he is one stubborn homo posting-nazi.
It is a good day to say...boiing
(2) In the case of valgrind and my other tool, it looks like it takes free software about 2.5 to 3 years to catch up. So such a tool is worth only $30 to $40 per year?
For a long time, CmdrTaco was special-cased in the code: he posted at score:3 by default. :)
No we haven't. MSRT bundles a fairly normal bounds checker. From reading the documentation it seems valgrind is a CPU emulator with memory read/writes logged and analysed.
And you deserved it.
Perhaps, but until we have finished moving there will be a need for tools like this.
Valgrind, alas, does nothing much to help.
Um, Valgrind apparently can more or less replace PurifyPlus, which is not available on Linux. PP was one of 3 dev components you mentioned. Thus, one third of the problem solved (or alleviated).
So how is not doing much to help?!?! You think it's ok to have have 3 (somewhat) separate tools on Windows, but in Linux one tool needs to do it all? What am I missing herE?
I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
I've used Purify for nearly a decade, and have been banging on valgrind for several months as well. I think that two of your three criticisms of valgrind are off base.
valgrind copes with static libraries. The only requirement is that the executable be linked to at least one dynamic library, and glibc will do. This is needed to allow valgrind to get control. Since for Purify you need to have the .o files so you can link, in the analogous situation with valgrind you can always link dynamically with the C library.
Valgrind has a suppression file that is much like that of Purify.
The only point you raise that is completely valid is that valgrind is x86-only. Those who really care might want to work on a port to other architectures, though it's a big job: you need a complete virtual processor.
Purify's GUI can be quite useful, but it would be preferable, if someone wants to do the same for valgrind, to implement any GUI as a completely separate program. That way the KDE and Gnome people can assure that there are at least two of them. :-)
Finally, to be fair I suspect that a Purify'd executable is faster. But then, you don't have to do a special, expensive link step, so the compile-debug-recompile flow feels faster with valgrind.
I've never heard of tsprof until I read your post here. Maybe that's part of your problem. When I searched Google for 'Linux profiler', It didn't show up in the first fifty results or so. This means I wouldn't have found it had I been looking for a profiler right now. Maybe the text on your web page should include the word "profiler"? I would assume that most people looking for a profiler would search for it by that name.
You could try getting more people to link to your web page, or find other ways to get the word out. Unfortunately, you have pretty tough competition, and you can't beat their price. I don't know what you've done to market tsprof, but it was probably not enough, or it was done the wrong way.
Your Flat profile window looks awsome, by the way. Would have been cool if you colored it using only 4 colors, though...
Good luck!
The amount of Servlet/J2EE/JDBC Java code out there vastly exceeds the amount of AWT code.
Sun's entire java.sun.com site runs on J2EE, which does not use AWT. Sure, the applets use AWT, simply because it's impossible to create an applet that doesn't use AWT (java.applet.Applet extends java.awt.Component).
[Emperor]Your feeble skills are no match for the power of C. You will pay the price for your lack of vision.[/Emperor]
it's "I do hope the moderator who is labeling these posts as 'trolls'...", not "whom". If you're going to be a pretentious fuckhead and use "whom", at least use it correctly!
Have they any idea of how rich they can (and would) get on a tool like this???
:)
This kinds of tools are highly valuated if it's good and people pay good money for it.
Dumbasses...
Just score:3? Interesting, I believe I saw some people posting with score:4 by default. They must be some big guys out there. :)
OK, first, what we seem to agree on...
However:
The latter, IMO, is the more serious of the two. If an object holds a resource, then until it is destroyed, the resource is held. Even the best general-purpose garbage collectors you can find today do not guarantee a maximum time between an object becoming unreferenced and being cleaned up. This goes double for conservative GC, where the resource might not be freed until everything which looks like a pointer to the resource-holding object disappears.
So in summary: I'm a big fan of GC, but it doesn't solve all my problems, and that's especially true in C++.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Of course I'm not sure if there is any chance of this happening because it will break all the tools everybody is using now...
This is pretty dope:
...
http://pan.rebelbase.com/screenshots/osx.png
Gotta say, OSX seems sexier and sexier, every day
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
No offence, but if you need a 3rd party tool to check if the output of the compiler, which was produced after the compiler found that the input (your code) was correct, is correct, perhaps it's time to take a step back and think about a better solution that will fix what I call the 'weak spot' of C++: you have too many stuff to take care of, it backfires on you.
.NET and the Java platform, you'll see that there isn't a necessity for the overhead you have to program with C++, so there's also no need for tools like purify or valgrind.
Today, the software that's used to develop software should be there to help developers write solid code from the start without overhead, without the necessity to program the plumbing code which makes your program logic run in the first place.
Some people here have suggested that GC is a better solution than just feed your compiled binary to another tool in the chain of tools and I agree. When you look at
For solutions where C++ is the only way to go, it's probably a welcome addition to the set of tools to work with, but for C++ in general it isn't IMHO, it only shows where C++ should be improved, or better: where the RTE of C++ should be improved so these tools are obsolete in the future.
Never underestimate the relief of true separation of Religion and State.
> Sorry guys, but as far as C/C++ development goes, nothing beats an XP box with Visual Studio 7, Intel C/C++ 6 and Rational PurifyPlus.
How about XEmacs, gcc 3.1, Valgrind and a summer vacation on a tropical island of your choice, for the same price?
--
I refuse to use
It is a nice technology and execution speed is reasonable. Yet, it has several gotchas. Most of them due to semantics lost at compilation:
Valgrind is a program I run if I suspect a memory error, and maybe every half year just to feel safe. It is used a lot less than the debugger, as memory errors are far less common than logical errors, at least for me. But when I need valgrind, it is godsend.
And of course, the really cool thing about valgrind is that it takes no human time to use. You just type
in some terminal window, and go back to working on something else. No special compile or build options, or any manual intervention needed. When it is finished, maybe next day, you read the problem repport.I've seen your signature many times, but I've never understood what you mean.
What exactly does VisualStudio.NET have to do with Linux developers?
.NOT
So, just curious, what does this do that NJAMD doesn't?
(NJAMD == Not Just Another Malloc Debugger,
search freshmeat.net.)
Those who actually search for software can also look in freshmeat.net and newsgroup comp.os.linux.announce and linuxapps.com and a buyer's guide.
Earth to angry person: Please don't bring your anger to Slashdot.
True, but searching freshmeat for "profiler" doesn't bring up your project. OProfile does show up, though, so I guess most people don't go any further.
The real strength of fix and continue is in tweaking UI/reports of programs that have long startup times.
Now that I am awake again, I have to correct the above figures: please read 250 instead of 25 and 500 instead of 50. Those are the ones I meant to post in the first place anyway.
Sorry.
Linux user since early January 1992.
Yep, I much prefer Haskell to Java. Only problem is that every time I mention it, I spend the next hour explaining what it is and why functional programming is a good idea =)
But that's not the point. It does not matter where it shows up if you miss out on the one MAJOR search engine of the internet.
Especially if it is returning hits for the competition.
As another suggestion, you might want to look to the game console market to leverage the knowledge you gained. God knows there are a lot of people out there who would pay $600 for a decent PS2 or Gamecube profiler....