Tuesday, 25 November 2008

Windows Vista - program has stopped working problems

I've decided I hate Windows Vista as a development platform.

In the past year I've had 3 people who got strange crashes running one of my programs on Vista. I've had no weird problems reported on Windows XP at all. In the last week I've had someone move from XP to Vista and their program doesn't run. As soon as they click on the desktop icon, Vista shows a message saying "... program has stopped working" and the program ends.

I did a search on Google for the reported error message and came across hundreds if not thousands of similar error reports for umpteen different programs. There doesn't seem to be a similar cause or remedy for any of them. The suggestions range from turning off Data Execution Protection, to moving files around in the My Documents folder, to uninstalling Java when the customer is using a .Net program.

What I need is advice on how to debug programs remotely when the poor old user/ customer isn't always technically aware - at least in software - and in any case simply wants the damn program to run. The only thing I can think of doing is asking the customer to download SysInternal's Process Monitor, get a log file and send it to me. This isn't a simple thing to do though for the average user.

Any ideas on how to go about or improve remote debugging?

by ML

13 comments:

  1. I guess you don't mean "remote debugging" as VS would provide?

    So before I sell my approach to you..

    Heres a posting a made a while ago.

    http://blog.softtester.com/index.php/2008/05/the-lost-benefits-of-handling-serious-errors/#comments

    OK, briefly, you have to catch any problems and put staging information together so that when an error occurs you can present a bug report dialog which will sent you these details.

    As a bonus, you can put this feature on your help menu, so that users can report weirdness and send you the details too.

    At the end of the day even if you did mean the VS remote debugging its only going to be so useful.

    You need someone or something to tell you what the user an OS were doing and to do this you need to tell your program the information you need.

    :) I guess I could sell you my dotnet bug report functionality :)

    ReplyDelete
  2. I might be interested but these errors occur before the
    app runs, i.e. while DLLs etc. are being loaded. I'm not
    sure if your error reporting functions would be running at
    this stage of execution.

    ReplyDelete
  3. True, I think.

    Are these your DLLs ?

    What DLLs do you mean?

    Presumably some code be be running in your DLLs if there being loaded ?

    Actually, if your talking about dotnet, then DLLs are loaded as you use them. You can see this in your output display.

    ReplyDelete
  4. Unfortunately I don't know what's ging on really as I
    can't reproduce the problem on the 3 Vista PCs or
    VMWare/ Vista installation I've tried. I've tried
    everything - running as Admin/ Normal User, DEW on/
    off, UAC on/ off etc. and I can't make the problem
    happen.

    ReplyDelete
  5. Hi,

    Prob some silly suggestions which you might have
    already tried.

    Have you confirmed that .NET framework is installed and
    working correctly?

    What I used to do was create a real basic application
    almost hello world type and have the user run that as
    some times the net stuff gets corrupted.

    ReplyDelete
  6. Thanks Blue,

    Any suggestion is useful. I haven't tried this but it's a
    good idea and simple to try out.

    I wasn't aware the .Net stuff in Vista could get corrupted
    but from Googling I can see now that it does.

    I've been working along the lines of a missing
    dependency but without sklled help from the customer I
    can't get the info I need. I may have o resort to a site
    visit.

    ReplyDelete
  7. Yup .net is sometimes a pain.

    What version of the framework are you using, you could also try and register the .net framework

    from cmd prompt:

    c:\windows\microsoft.net\framework\v1.1.4322\aspnet_regis /i

    Also to save you from a site visit www.logmein.com is pretty neat allows the user to accept your connection, or www.webex.com is proving very popular these days aswell.

    ReplyDelete
  8. Thanks! I'm learning quite a bit on this post.

    www.logmein.com looks good but it's £76 a month. I
    might give their demo a go.

    Did a quick search and found www.netviewer.com which
    is under EUR30 a month. They have a free demo period too
    so I might try them too.

    I'll let you know how I get on. I'm having trouble
    contacting the customer at the moment - I get an email
    every week or so which makes it very frustrating to get
    to the root cause - but next time they get in touch I'll see
    if they will let me control their PC remotely.

    I was considering using the Invite a Friend facility in
    Windows Help. Do you know if the logmein service is
    superior OR even if the Windows Help works remotely -
    I've used Windows Help successfully on a company
    network between sites before.

    ReplyDelete
  9. Crikey £76 is expensive, I have Logmein Free and within that I can get a free trial logmein it reach, i had a customer recently install that with a unique url I gave him however if the user is a bit
    net savy they may prefer that you connect using logmein Rescue which puts your access in their control :) and you can get a free trial.

    I.e they click to allow you control etc.

    Other options are MSN Ask for assistance

    Windows Help & Support "Ask a freidn for remote assistance" invite sent by email.

    Logmein is far more superier and is actually the core helpdesk application used at General Electric for PC support.

    Ive used MSN and Windows ask for assistance before but sometimes the firewalls either side prevent it from working.

    ReplyDelete
  10. I use LogmeIN Free to, use it most days, great tool. I don't know why you'd need the paid version.

    Theres also http://www.teamviewer.com which is good, but I think it requires an install.

    Although LogmeIn Free does too.

    I use to swear by netmeeting, which turned into Windows Conf (or conf from the run prompt).

    ReplyDelete
  11. I tried out LogMeIn Rescue. This is a really top-notch
    program. The client has only a 300Kb download - which
    they are invited to download when you send a support
    request. the whole thing looks really professional and
    even sends nice, explanatory support invites the the
    client/ customer PC.

    I also tried out NetViewer. This also worked but was
    more clunky and techy. The client had to download a
    bigger program to get support. The email sent out when
    making a support invite wasn't well worded - you'd have
    to edit it yourself to explain a bit more about what the
    customer needs to do. It also wanted to use Outlook
    2007 to begin with instead of my default email client
    Outlook Express. the view of the client desktop was also
    much more grainy than with LogMeIn Rescue. It was still
    a good functional service though and way (4 times)
    cheaper than LogMeIn.

    I've asked LogMeIn if they do a daily or session-based price as well as the monthly/ yearly options they advertise on their site.

    ReplyDelete
  12. Don't forget webex

    http://www.webex.com/smb/web-meeting-center.html

    There have a pay per use.

    ReplyDelete
  13. Guys, I resolved the Vista problem eventually! Since we
    couldn't solve the problem, I had given a refund to the
    customer and thought that was the end of it. We gave up
    after a couple of emails since we weren't getting the info
    we needed.

    The customer though got his IT guy to keep on trying
    things out since he wanted to carry on using the
    package. It had been working fine and then stopped
    after a few weeks.

    It turns out the user had been reporting the problem
    incorrectly. The crash was happening during printing and
    the IT guy found that the problem moved from one PC to
    another with a particular printer. It turns out the printer
    was very old (6 years +) and had the lowest possible
    compatibility with Vista - it had trouble with colours and
    curved lines. The user bought a new printer and now my
    package works fine. The user was even kind enough to
    tear up the refund cheque and mail us to say things were
    now running OK!

    ReplyDelete