Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #26350

Re: Type-safety and C++, was: Re: Dimension of a matrix

Subject Re: Type-safety and C++, was: Re: Dimension of a matrix
Newsgroups comp.arch.embedded
References (12 earlier) <87shlxuclb.fsf@nightsong.com> <obd2p6$c2r$1@dont-email.me> <obeuni$kkv$1@dont-email.me> <obfr85$g0i$1@dont-email.me> <obhj86$hb8$1@dont-email.me>
From Phil Martel <pomartel@comcast.net>
Message-ID <rQ9DA.159971$Ip6.32530@fx38.iad> (permalink)
Organization UsenetServer - www.usenetserver.com
Date 2017-03-30 11:51 -0400

Show all headers | View raw


On 3/29/2017 20:31, Les Cargill wrote:
> David Brown wrote:
>> On 29/03/17 02:29, Les Cargill wrote:
>>> David Brown wrote:
>>>> On 28/03/17 08:42, Paul Rubin wrote:
>>>>> Tim Wescott <tim@seemywebsite.com> writes:
>>>>>> I don't write many bugs that have to do with overrunning
>>>>>> array boundaries, particularly because I both inspect and
>>>>>> test for it.
>>>>>
>>>>> It helps if you're writing embedded code, which tends to not
>>>>> deal with too much variable sized data or have complicated
>>>>> control flow. Otherwise how can you really tell?  Inspection
>>>>> stops helping much once the program is large enough.  Do you do
>>>>> any fuzz testing etc.?
>>>>>
>>>>
>>>> I think the key point is program design, rather than testing.
>>>> Testing can help show that you /have/ bugs, it doesn't show that
>>>> you /don't/ have bugs.
>>>>
>>>
>>> But design is about constraints, and testing can show that
>>> constraints are met. That has a seriously Pareto ( 90/10 ) effect
>>> on development outcomes. The other 10 percent takes the other 90
>>> percent of time allotted.
>>>
>>>> I don't have many bugs involving overrunning arrays either
>>>> (despite being a mere human).  I just make sure I know the size
>>>> of my arrays when I use them.
>>>>
>>>
>>> Me too.
>>>
>>> Apparently, that is too hard and we'll all suffer deadly
>>> incursions.
>>>
>>
>> There are some kinds of defects that can be avoided by good design.
>
> And that is really all this is.
>
>> Some kinds can be spotted by static error checking at compile time.
>> And some kinds can be best spotted using tests.
>>
>
> Static checking won't find much amongst people who have good
> self-checking habits. I've seen two cases where ancient
> code bases were cleaned up using static checkers, and it was mostly
> noise.
>
> Where static analysis shines is "before every checkin." But it
> all adds up.
>
>> Array overruns are best avoided by good programming practice - you
>> know exactly what size your array is when you use it.
>
> Now how hard was that?
>
>>  You don't
>> make assumptions - make sure you /know/.  And they are usually very
>> hard to find by tests - the effect of an array overrun is typically
>> "something odd is happening" because you have written to a different
>> memory object unexpectedly.
>>
>
> you effectively cannot reliably test for them. They must be
> prevented by other practices.
>
>> You cannot sensibly use run-time checks of array sizes, except
>> occasionally during development.  You can only check the array bounds
>> on access if you know the bounds - and if you know the bounds during
>> the access, then the code that makes the accesses already knows these
>> bounds and should not attempt such accesses.
>
> Yep.
I'd be concerned about code reuse.  *I* will know about the array bounds 
and hopefully document them well and remember them when I pick up the 
code in six months.  I'm not so sure that the next guy will do the right 
thing, particularly after I've left a project...
>
>> At best, you might
>> spot typographical errors - using "sizeOfInBuffer" when you meant
>> "sizeOfOutBuffer".
>>
>
> So I often start with "all buffers are the same size",
> and then reduce them as needed, using a typedef enum to ...
> enumerate all the possible sizes.
>
> In that case, you change one at a time, following it through
> its entire lifetime. If you can't follow it through its entire lifetime,
> then you have a much bigger problem.
>
> And to be totally honest, I'll at times "write an MMU" - have an array
> of struct of the addresses and lengths of all the buffers, then add
> extent checks that can be turned off.
>
> Most people who have buffer overrun problems have opaque void * style
> buffer being flung around. Tsk.
>


-- 
Best wishes,
--Phil
pomartel At Comcast(ignore_this) dot net

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Dimension of a matrix Tim Wescott <seemywebsite@myfooter.really> - 2017-03-23 18:17 -0500
  Re: Dimension of a matrix Paul Rubin <no.email@nospam.invalid> - 2017-03-23 23:21 -0700
    Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-24 09:18 +0100
      Type-safety and C++, was: Re: Dimension of a matrix Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2017-03-24 18:24 +0000
        Re: Type-safety and C++, was: Re: Dimension of a matrix Tim Wescott <tim@seemywebsite.com> - 2017-03-24 19:32 -0500
          Re: Type-safety and C++, was: Re: Dimension of a matrix Stefan Reuther <stefan.news@arcor.de> - 2017-03-25 09:59 +0100
          Re: Type-safety and C++, was: Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-25 13:08 -0500
        Re: Type-safety and C++, was: Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-25 01:57 +0100
          Re: Type-safety and C++, was: Re: Dimension of a matrix Clifford Heath <no.spam@please.net> - 2017-03-25 18:34 +1100
            Re: Type-safety and C++, was: Re: Dimension of a matrix Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2017-03-26 23:53 +0000
              Re: Type-safety and C++, was: Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-27 09:51 +0200
                Re: Type-safety and C++, was: Re: Dimension of a matrix Clifford Heath <no.spam@please.net> - 2017-03-27 20:19 +1100
                Re: Type-safety and C++, was: Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-27 12:17 +0200
          Re: Type-safety and C++, was: Re: Dimension of a matrix Paul Rubin <no.email@nospam.invalid> - 2017-03-25 09:20 -0700
        Re: Type-safety and C++, was: Re: Dimension of a matrix George Neuner <gneuner2@comcast.net> - 2017-03-24 23:14 -0400
          Re: Type-safety and C++, was: Re: Dimension of a matrix Tim Wescott <tim@seemywebsite.com> - 2017-03-25 11:07 -0500
            Re: Type-safety and C++, was: Re: Dimension of a matrix George Neuner <gneuner2@comcast.net> - 2017-03-26 05:45 -0400
              Re: Type-safety and C++, was: Re: Dimension of a matrix Wouter van Ooijen <wouter@voti.nl> - 2017-03-26 13:14 +0200
                Re: Type-safety and C++, was: Re: Dimension of a matrix Paul Rubin <no.email@nospam.invalid> - 2017-03-26 11:08 -0700
                Re: Type-safety and C++, was: Re: Dimension of a matrix Wouter van Ooijen <wouter@voti.nl> - 2017-03-26 20:24 +0200
              Re: Type-safety and C++, was: Re: Dimension of a matrix Tim Wescott <tim@seemywebsite.com> - 2017-03-26 15:16 -0500
                Re: Type-safety and C++, was: Re: Dimension of a matrix Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2017-03-27 00:09 +0000
                Re: Type-safety and C++, was: Re: Dimension of a matrix Tim Wescott <seemywebsite@myfooter.really> - 2017-03-26 19:43 -0500
                Re: Type-safety and C++, was: Re: Dimension of a matrix Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-03-27 16:57 +0100
                Re: Type-safety and C++, was: Re: Dimension of a matrix Tim Wescott <tim@seemywebsite.com> - 2017-03-27 11:53 -0500
                Re: Type-safety and C++, was: Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-27 22:04 +0200
                Re: Type-safety and C++, was: Re: Dimension of a matrix Tim Wescott <seemywebsite@myfooter.really> - 2017-03-27 18:32 -0500
                Re: Type-safety and C++, was: Re: Dimension of a matrix Clifford Heath <no.spam@please.net> - 2017-03-28 11:03 +1100
                Re: Type-safety and C++, was: Re: Dimension of a matrix Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-03-27 22:07 +0100
                Re: Type-safety and C++, was: Re: Dimension of a matrix Paul Rubin <no.email@nospam.invalid> - 2017-03-27 23:42 -0700
                Re: Type-safety and C++, was: Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-28 09:22 +0200
                Re: Type-safety and C++, was: Re: Dimension of a matrix Paul Rubin <no.email@nospam.invalid> - 2017-03-28 00:42 -0700
                Re: Type-safety and C++, was: Re: Dimension of a matrix Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-03-28 09:07 +0100
                Re: Type-safety and C++, was: Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-28 19:34 -0500
                Re: Type-safety and C++, was: Re: Dimension of a matrix Tim Wescott <tim@seemywebsite.com> - 2017-03-29 11:39 -0500
                Re: Type-safety and C++, was: Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-28 19:29 -0500
                Re: Type-safety and C++, was: Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-29 10:31 +0200
                Re: Type-safety and C++, was: Re: Dimension of a matrix Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2017-03-30 00:23 +0000
                Re: Type-safety and C++, was: Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-29 19:31 -0500
                Re: Type-safety and C++, was: Re: Dimension of a matrix Phil Martel <pomartel@comcast.net> - 2017-03-30 11:51 -0400
                Re: Type-safety and C++, was: Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-30 19:16 -0500
                Re: Type-safety and C++, was: Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-31 09:21 +0200
                Re: Type-safety and C++, was: Re: Dimension of a matrix Tim Wescott <seemywebsite@myfooter.really> - 2017-03-28 14:19 -0500
    Re: Dimension of a matrix Tim Wescott <tim@seemywebsite.com> - 2017-03-24 11:05 -0500
      Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-24 17:33 +0100
        Re: Dimension of a matrix Tim Wescott <tim@seemywebsite.com> - 2017-03-24 12:09 -0500
      Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-25 13:09 -0500
    Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-25 13:05 -0500
  Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-24 09:20 +0100
    Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-25 13:12 -0500
      Re: Dimension of a matrix Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2017-03-25 20:08 +0100
        Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-25 15:17 -0500
          Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-26 17:32 +0200
            Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-26 11:55 -0500
              Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-26 21:23 +0200
                Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-29 19:36 -0500
                Re: Dimension of a matrix Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2017-03-30 00:36 +0000
                Re: Dimension of a matrix Paul Rubin <no.email@nospam.invalid> - 2017-03-29 19:55 -0700
                Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-30 09:49 +0200
                Re: Dimension of a matrix Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2017-03-30 18:07 +0000
                Re: Dimension of a matrix David Brown <david.brown@hesbynett.no> - 2017-03-30 09:47 +0200
  Re: Dimension of a matrix Wouter van Ooijen <wouter@voti.nl> - 2017-03-25 19:08 +0100
    Re: Dimension of a matrix Les Cargill <lcargill99@comcast.com> - 2017-03-25 15:21 -0500
      Re: Dimension of a matrix Wouter van Ooijen <wouter@voti.nl> - 2017-03-26 14:43 +0200

csiph-web