rulururu

post Dr Watson has died

October 29th, 2009

Filed under: General Programming, Software, Windows — Kai @ 2:58 pm

If you need to get a crashdump running Windows Vista you’ll look for DRWTSN32.EXE for ever and a day. Unfortunately, it’s in vain, Dr Watson died…

Nevertheless that app has been very important for collateral quality control.

Vista has increased the intricacy of everything a lot. In general Vista is not saving minidumps, but keeps account of every crash or error report. If an app is WER registrated a crashdump is stored as well - if it’s not no crashdump is at dumpfolder. Neither here nor there.

This is how it works on Vista (as fair as I could figure out):

  • WER just makes a crashdump for WER signed apps respectively if the WER server requests a report
  • To get a minidump the following regesty value has to be set:
    HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\ (DWORD) create a key named “ForceQueue” and set it to 1.
  • Dumps are getting stored in user directory C:\Users\TheUserName\AppData\Local\Temp and C:\ProgramData\Microsoft\Windows\WER\ReportQueue. File extension is *.mdmp.
  • You can have an overview at Control Panel-> maintenance -> Problems & Solutions -> Check Problems

You also can find several instructions on the web howto install Dr Watson on Vista. There also seems to a tool called DrVista that might help you - which I didn’t try…

Watson

post Google Open Sources C++ Testing Framework

July 15th, 2008

Filed under: C++, General Programming, Internet, Software — Kai @ 3:22 pm

The Google C++ Testing Framework known also as Google Test, based on xUnit has been used by many of the Google C++ developers to help in unit testing their C++ applications. It is portable and works on Linux, Windows, Mac etc with GCC and MSVC compilers and even embedded systems. You can even use it to kill your Linux applications so that they die as you expect them to. Or have it continue testing after non-fatal errors. Now they have made it available as an open source library.

Google doesn’t claim that their test framework is better than others but they have made it easy to extend it by adding new test macros. You can read more in the primer and faq.

Link: Google C++ Testing Framework

post PCMan - A FileManager having Tabs

June 18th, 2008

Filed under: Linux, Software — Kai @ 3:40 pm

One of the greatest mysteries to me is why most file managers don’t have tabs - it makes performing tasks so much simpler.
I’ve found a lightweight file manager for Debian called PCMan that gives you most of the functionality from Nautilus, but also has tabs. To install this file manager, you can either use the built-in Add/Remove applications dialog or use the command line.

Install it with apt-get:

apt-get pcmanfm

Once it’s installed, you can find it under System Tools \ PCMan File Manager.

PCMan

The current version is 0.3.5.10, which was released on February 14th 2008.
Its web reference is pcmanfm.sourceforge.net, which indeed looks a bit weird.

post Pipe Viewer

June 16th, 2008

Filed under: Linux, Software — Kai @ 8:12 pm

Today I found a really nice program for long-running console commands: pv, aka “Pipe Viewer“.
If you’ve ever strung together a long command with pipes, run it, questioned why it’s taking so long, maybe open another terminal to run top… pv is the answer to that question.

It’s very similar to tee, except instead of sending a copy of the data to a file, it displays one or more progress meters on the screen so you can see the flow of data through your piped commands.

It can be easily installed via apt or downloaded on the official website as RPM.

The usage is very simple. If you like to compress a file and show the progress visually you can do it this way:

pv big.iso | gzip > big.iso.gz
50.3MB 0:00:05 [11.6MB/s] [=====>                ] 33% ETA 0:00:09

In the manual you can find some more, also very complex examples such as this more complicated example using numeric output to feed into the dialog program for a full-screen progress display:

pv file | nc -w 1 somewhere.com 3000
(tar cf - . \
| pv -n -s ‘du -sb . | awk ’{print }’‘ \
| gzip -9 > out.tgz) 2>&1 \
| dialog --gauge ’Progress’ 7 70

You should mention that the program is aborted if a numeric option, such as -L, has a non-numeric value.

post Cmd year’s discovery: PathPing

April 6th, 2008

Filed under: Software, Windows — Kai @ 6:07 pm

Every time I have occasion to look at the Windows command line documentation, I seem to discover something new. Admittedly this is because I don’t really look for new stuff all that often…

The year’s discovery for 2008 might be Pathping which is a Windows based command-line tool (for Windows cmd) used to provide information about the path data takes to its intended destination, network latency and network loss at intermediate hops between a source and destination.

It’s a TCP/IP based utility that can be used when looking for errors in network. It does this by sending echo requests via ICMP and analyzing the results. ICMP stands for Internet Control Message Protocol. ICMP is an extension to the Internet Protocol (IP - part of the TCP/IP protocol suite). ICMP supports packets containing error, control and informational messages.

Like tracert, pathping will discover the route IP traffic will currently take to from your machine to a particular target on the internet, and how long each hop takes. But while tracert just shows you three samples for the timing to each hop, pathping runs for a few minutes, and sends out a much larger number of packets - 100 per hop by default. It then displays the average performance and packet loss for each hop in the chain. Since timing and packet loss can vary quite widely, three samples often isn’t enough to characterise the quality of your connectivity, so pathping can give a better picture of network health between distant machines.

A sample output could be:

pathping -n server
 
Tracing route to server [10.1.1.5]
over a maximum of 30 hops:
  0  10.1.2.1
  1  10.1.1.1
  2  10.1.1.5
 
Computing statistics for 50 seconds...
            Source to Here   This Node/Link
Hop  RTT    Lost/Sent = Pct  Lost/Sent = Pct  Address
  0                                           10.1.2.1
                                0/ 100 =  0%   |
  1   35ms     0/ 100 =  0%     0/ 100 =  0%  10.1.1.1
                               13/ 100 = 13%   |
  2   28ms    16/ 100 = 16%     3/ 100 =  3%  10.1.1.5
                                0/ 100 =  0%   |
 
Trace complete.

PathPing is supplied in Windows NT, Windows 2000, Windows 2003, Windows XP and Windows Vista.

Finally it’s nothing spectacular that can’t be archieved otherways but it will ease your work in some cases.

post IntelliSense Bug in Visual Studio

April 3rd, 2008

Filed under: C++, Software — Kai @ 7:55 pm

I have been irritated many times when IntelliSense stoped working immediately in the middle of programming. Sometimes the whole IntelliSense quits and at other times only certain sections of code fails to bring up List Members and Parameter Info.

According to Microsoft if there is an incomplete function or other coding error above the location of the insertion point, IntelliSense may be unable to parse the code elements and therefore will not work. It’s recommented to comment out the applicable code to enable IntelliSense again.

I found out that certain lines in my code bring IntelliSense to a stand-still.

Any code in Visual Studio that uses a comma-list to define an array of object constructor parameters will kill IntelliSense for all code following the definition.

This works well:

int iSomeNumbers[] = {4, 14, 1, 44 ,1};
char cWord[] = "test";

’cause it’s just a simple array.

The problem appears when using array definitions that include object constructors to create elements.
IntelliSense gets confused by this and crashes:

Point arPoints[] = {Point(1,4), Point(4,1), Point(4,1), Point(4,1)};

The easiest workaround to keep IntelliSense keep on working proper is to this kinda long winded way:

Point arPoints[4];
    arPoints[0] = Point(1,4);
    arPoints[1] = Point(4,1);
    arPoints[2] = Point(4,1);
    arPoints[3] = Point(4,1);

At least I discoverd in the web that this line messes up IntelliSense:

Point arPoints[] = {Point(1,4), Point(4,1), Point(4,1), Point(4,1)};

This one does not:

Point[] arPoints= {Point(1,4), Point(4,1), Point(4,1), Point(4,1)};

Notice that the array brackets are after the type not the identifier.

Hopefully someone can help determine other situations that cause IntelliSense to fail.

ruldrurd
Next Page »
Powered by WordPress, Content and Design by Kai Bellmann
Entries (RSS) and Comments (RSS)