Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | James Kuyper <jameskuyper@verizon.net> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Failing Malloc |
| Date | 2012-09-12 17:56 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <505104F1.6080709@verizon.net> (permalink) |
| References | <k2qq2i$aba$1@speranza.aioe.org> <5050FC9D.4010608@verizon.net> <abcd17F1taiU1@mid.individual.net> |
On 09/12/2012 05:27 PM, Ian Collins wrote: > On 09/13/12 09:20 AM, James Kuyper wrote: >> On 09/12/2012 04:07 PM, Eric wrote: >>> Hi What is a good way to respond to a failed Malloc (returns Null)? I do >>> not want to call Abort or Exit immediately. >> >> That depends entirely upon what your program is doing. There's only one >> general piece of advice that's applicable: do NOT do anything with that >> null pointer value other than copying it or comparing it to other pointers. >> >> My own code would generate an error message identifying the fact that >> malloc() failed, along with the name of the function that called it, and >> the name of the file containing that function. That much is required by >> the coding standards for the project I'm working on. Everything else I >> will say about this reflects my own personal requirements. If the >> failure occurred inside a loop, the error message would indicate the >> value of the loop index at the time the problem was identified. If the >> message would otherwise be identical to another message that could be >> produced in the same block of code, something will be added to it to >> allow unique identification of the particular call to malloc() that >> triggered the problem. That function would then clean up anything that >> it needed to clean up, and then return an error code to the calling >> function. > > I can understand this approach on a single use embedded system where > such a failure may be repeatable. Do error messages provide any useful > data on a multi-user system given the generally random memory usage > patterns? While the systems my programs normally run on are nominally multi-user, there's one user-id that is used to start the production manager program. All other programs in the production system (including mine) are started by the manager, directly or indirectly, and therefore all run using the same user id. For practical purposes, it's a single-user system (and definitely NOT an embedded one). As I said, for failed malloc() calls the information provided by those error messages is seldom of much use - it's just part of a general framework for error handling that I've found useful. However, most of the problems that come up are data-driven, and are unaffected by the "random memory use patterns" of other programs that might be running at the same time on the same system. For those kinds of problems, I've found it a very useful framework. This is example of how the right way to deal with errors depends very much on the context in which those errors have to be dealt with, which is precisely the point I was making. I was recently assigned to help another group with their work - when it fails, their software provides much less information in the error messages than mine does. I keenly miss that information.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Failing Malloc Eric <nospam@nospam.com> - 2012-09-12 20:07 +0000
Re: Failing Malloc Xavier Roche <xroche@free.fr.NOSPAM.invalid> - 2012-09-12 22:12 +0200
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-12 14:25 -0700
Re: Failing Malloc Andrew Cooper <andrew@nospam.example.com> - 2012-09-12 21:21 +0100
Re: Failing Malloc Eric <nospam@nospam.com> - 2012-09-12 20:34 +0000
Re: Failing Malloc Paul N <gw7rib@aol.com> - 2012-09-12 13:46 -0700
Re: Failing Malloc Eric <nospam@nospam.com> - 2012-09-13 20:21 +0000
Re: Failing Malloc Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-13 17:31 -0400
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-13 17:57 -0400
Re: Failing Malloc John Gordon <gordon@panix.com> - 2012-09-12 20:55 +0000
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-12 14:33 -0700
Re: Failing Malloc falk@rahul.net (Edward A. Falk) - 2012-09-13 22:43 +0000
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-12 17:37 -0400
Re: Failing Malloc Johann Klammer <klammerj@NOSPAM.a1.net> - 2012-09-13 08:57 +0200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-12 17:20 -0400
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-13 09:27 +1200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-12 17:56 -0400
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-13 10:28 +1200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-12 18:57 -0400
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-12 16:21 -0700
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-13 12:07 +1200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-13 13:18 -0400
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-14 07:37 +1200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-13 16:05 -0400
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-13 14:21 -0700
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-13 17:38 -0400
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-13 14:03 -0700
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-15 10:01 +1200
Re: Failing Malloc Philip Lantz <prl@canterey.us> - 2012-09-14 02:50 -0700
Re: Failing Malloc Kaz Kylheku <kaz@kylheku.com> - 2012-09-12 21:36 +0000
Re: Failing Malloc Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-12 17:41 -0400
Re: Failing Malloc Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2012-09-12 16:07 -0600
Re: Failing Malloc "christian.bau" <christian.bau@cbau.wanadoo.co.uk> - 2012-09-12 16:03 -0700
Re: Failing Malloc Kenneth Brody <kenbrody@spamcop.net> - 2012-09-12 19:24 -0400
Re: Failing Malloc The Great Firewall of China Blue <chine.bleu@yahoo.com> - 2012-09-12 16:34 -0700
Re: Failing Malloc Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-09-13 00:14 -0700
csiph-web