The days are not filled with Crash Dump analysis with using WinDBG. Have you heard that it is possible to execute a command like itoldyouso in WinDBG? This is funny exported function in dbghelp.dll which is equivalent to chksym. i.e to check the validity of the module specified against the pdb pdb file. I dont know why redmond folks done like this.
For e.g If you want to verify the ntdll.dll PDB file.Let’s go hereGive command like “!itoldyouso ntdll.dll”See the results.ntdll.dll Timestamp: 411096B4 SizeOfImage: B0000 pdb: ntdll.pdb pdb sig: 36515FB5-D043-45E4-91F6-72FA2E2878C0 age: 2
Loaded pdb is C:\WebSymbols\ntdll.pdb\36515FB5D04345E491F672FA2E2878C02\ntdll.pdb
ntdll.pdb pdb sig: 36515FB5-D043-45E4-91F6-72FA2E2878C0 age: 2
MATCH: ntdll.pdb and ntdll.dll This is useful especially when you have many PDB files of same modules. John Robbins Blogged about this few weeks ago. Follow the link to see more details.
Monthly Archives: November 2007
Refactor Plugin for Visual C++ 2005
Have you ever checked the Refactor! Plug-in for Visual C++ 2005? If not, just check it out. It’s really cool have this free plug-in.
The Link provide detailed screen shot and operations. So that I’m not putting effort to redo the same think. Just check it out.
Anyway i faced some hang-up issues with Visual C++ under Windows Vista. Visual Studio 2005 has some compatibility issues with Vista. I’m not going to dig more into that but just want to use this free initiative.
Those who don’t know what’s refactoring: Wikipedia- Code Refactoring
Basic category of design patterns
The design patterns are broadly categorized into 3. Creational Patterns, Structural pattern and Behavioral Pattern
Creational pattern
Creational pattern abstracts the creation process. It helps the system makes independent of how the object is created, composed and represented. It works best with object composition than inheritance and better control over the object creation by avoiding the hard-coded logics. The abstract interfaces make the objects creation more flexible. It gives the user an opportunity to define what, who and how the objects are created.
Structural patterns
Structural patterns are dealing with creating large structures with objects and classes. It’s dealing mostly with inheritance. The final object will be inherited from different classes.
Behavioral pattern
Behavioral pattern mainly concerned with the logic (algorithm) and assignment of responsibilities between objects. It’s also used to define the communication between them. These kind of patterns use object composition rather than inheritance. However inheritance is used to distribute the behavior of the objects. In some cases, we have many objects to carry out single task where we need to ensure a good communication between objects and at the same time it’s required to reduce the coupling between the objects. It’s one of the core competencies of these kinds of patterns.
Above I just briefed any new things but some common things about design patterns. We shall try each every pattern in the coming posts.
One of the major purposes of the patterns is to making an analysis model into and implementation model. The patterns and its related vocabularies can be used as learning and communication tools to express the design problems. It helps us to refactor, reorganize for a better solution.
Object oriented software has mainly 3 phases. (1) Prototyping of requirements. (2) Expanding/Optimizing the design and finally (3) Consolidate or finalize the design. This process could repeat again and again to achieve a refined solution for the problem or the perfect solution for the system.