How about scrapping DTM and putting together a real test framework? DTM is
horribly over engineered for anyone other than WHQL, it just gets in the
way. For those of us who are small environments, setting it iup is
horribly complicated.
For firms that have large test environments, it still gets in the way. I
know a major firm that has pools of hundreds of test machines and their own
tools to image and run tests, for years when they had a new driver for
Windows they would use the whole pool to stress test the driver. Now thanks
to DTM being in the way, they have a pool of 30 systems for Windows testing,
and reserve the hundreds for other OS’es that do have the DTM problems.
DTM IMHO has done more to set back the quality of Windows drivers than
anything Microsoft has done.
–
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply
“Bill McKenzie” wrote in message
news:xxxxx@ntdev…
>I actually LOVE static analysis tools. I just don’t understand why they
>don’t get some real kernel devs on them and tailor them appropriately. I
>think PreFast is a beautiful tool! I don’t even bother with the SAL
>annotation much (except for the buffer size stuff that is pretty cool) and
>I still find it terribly useful. I mean, it just catches stupid errors
>mostly, but that is SO much better to catch at build time and you can
>easily hook it into the build process to automatically run. The false
>positives are a good bit annoying, they could trim that a LOT.
>
> SDV seems like a great idea, but horribly horribly broken. I, like Peter,
> have never gotten anything useful out of it. But the idea seems to have
> a lot of promise. Just needs some serious and directed effort behind it.
>
> Run time tools are awesome! I will use all I can get my hands on and I
> do. But static analysis tools that can be automated into a build are
> simply beautiful! I wish I had a better handle on just how broad a
> spectrum of errors those tools could find in a reasonable timeframe given
> sufficiently sophisticated tools. I really don’t have a good idea where
> those bounds are. But, if the potential error catching surface is
> large…I say poor all the resources you can into that!
>
> For runtime tools…I would LOVE to see some kind of integration into DTM,
> so again, we could automate the running and retrieving of results!!
>
> For that matter, how about fixing and/or finishing the COM interface to
> DTM so automating the running of DTM is easier to achieve?
>
> Bill M.
>
>
>
> “Don Burn” wrote in message news:xxxxx@ntdev…
>> The number of tools that would be nice out of Microsoft is too large to
>> post, a few over the years I have suggested to them are:
>>
>> 1. Code coverage - yes Bullseye is nice, but even with it we need faut
>> injection. Note they looked at fault injection and rejected it because
>> people would have to modify their code (I guess annotations don’t count
>> as modification)
>>
>> 2. Lock contention measurement - the number of times I have seen people
>> propose a gazzilion locks for a driver because they do not want
>> contention. A tool that shows how long locks are held (max and average)
>> and how long someone waits for locks would probably slow down some of
>> these lets have a seperate lock for everything.
>>
>> 3. Call usage verifier - this was a godd tool, it could have been
>> expanded a lot. Come on Redmond either bring it forward, or release it
>> back to OSR so they can have the OSR WDK (compared to the OSR DDK that
>> CUV came from).
>>
>> Perhaps we need an email list for such tools, complete with a legal
>> agreement that releases any thing people say, so Redmond or others can
>> act on it.
>>
>>
>> –
>> Don Burn (MVP, Windows DDK)
>> Windows 2k/XP/2k3 Filesystem and Driver Consulting
>> Website: http://www.windrvr.com
>> Blog: http://msmvps.com/blogs/WinDrvr
>> Remove StopSpam to reply
>>
>>
>>
>>
>> “Martin O’Brien” wrote in message
>> news:xxxxx@ntdev…
>>> +1
>>>
>>> I’d add that some complete and accurate WinDbg documentation might be
>>> nice, as would the same for the KRM.
>>>
>>>
>>> mm
>>>
>>> xxxxx@osr.com wrote:
>>>> I agree with Mr. O’Brien. The focus of the DDC is clearly static
>>>> analysis, because if we’re not using it, that’s obviously because we’re
>>>> dumb out here and slow on the uptake.
>>>>
>>>> The distortion field is clearly alive and well. Sigh!
>>>>
>>>> As usual, Microsoft would be well served by REALLY understanding what
>>>> we DO out here. They THINK they understand, but they don’t.
>>>>
>>>> As I’ve said before, I like and respect the folks who do SDV and
>>>> PreFast. I really do. They’re very smart… most of them smarter than
>>>> me. But they’d just be soooo surprised if they could spend some time,
>>>> like maybe a solid 3 months, out in the real world trying to USE these
>>>> tools to do useful work for pay.
>>>>
>>>> PreFast: Amusing, sometimes useful, but annoying. For maximum
>>>> effectiveness and minimum annoyance have to “buy in” to using it
>>>> throughout the life-cycle of your driver. You have to believe that SAL
>>>> notations are a good thing. I am not convinced.
>>>>
>>>> SDV: Complicated, difficult, and VERY annoying. I have never – not
>>>> once – been able to get SDV to disclose a meaningful error to me.
>>>> This is true even when I try to create specific errors in my code that
>>>> the documentation CLEARLY says SDV will detect and report.
>>>>
>>>> I intellectually understand who/why/where these tools could be
>>>> useful. I suspect that it’ll take about another ten years before I find
>>>> them useful in practical situations, however.
>>>>
>>>> If I were king of the group responsible for these tools, I would
>>>> redirect their efforts to building clever and comprehensive DYNAMIC
>>>> analysis and debugging tools that we can use out here in the real
>>>> world, without significant up-front “adopt it for life or it’s not
>>>> useful”, requirements.
>>>>
>>>> These dynamic tools are really what the community needs at this point.
>>>> WAY MORE checks in KMDF Verifier. A LOCKING HIERARCHY VALIDATION scheme
>>>> (OSR has a patent pending on one, we’ll be happy to license it) for ALL
>>>> sorts of locks. MORE speculative checking options in Driver Verifier.
>>>> Resurrect Call Usage Verifier – now discontinued. And… just to show
>>>> you how easy it is to miss the simple stuff: WHY are things like
>>>> IoGetNextIrpStackLocation still MACROs?? Why are ANY of the DDK
>>>> functions macros? When they’re macros, they’re impossible to “hook”
>>>> with Verifier. At LEAST make them functions, and mark them as “inline”
>>>> in the free build. There is NO additional overhead to this, and much
>>>> to be gained. This seems obvious to me (and, in fact, was an actual
>>>> work item for the DDK back, oh, about a thousand years ago).
>>>>
>>>> If any of the static analysis folks would like to come to OSR to spend
>>>> a couple of months writing code on real customer projects, and see “how
>>>> the other half lives”, I’ll be happy to provide the office and project
>>>> management. I’ll even give them free lunch for the duration of their
>>>> stay (like every other OSR employee). Maybe they’ll gain some insight.
>>>> Then again, maybe they’ll convince us that PreFast or SDV will make our
>>>> drivers or file systems better and I’ll have to write a big long
>>>> article in The NT Insider about how SDV changed my life.
>>>>
>>>> Peter
>>>> OSR
>>>
>>
>>
>>
>
>
>