Fixed ADPlus That Works with Windows 7 (and Probably S2K8 R2)

Edit Feb. 20, 2009: Note that Microsoft has fixed ADPlus with the 6.11.1.402 version of the Debugging Tools for Windows. Use that version instead of my version posted here.

Windows 7 has been working quite well for me and the new taskbar is completely fantastic. Being that it’s in beta there are a few bugs I’ve run into here and there. The worst bug is that if I’ve logged my laptop into my domain, Explorer hangs when accessing the C: drive. Fortunately, it’s a very rare bug so it has been hard to reproduce, but when it happened this morning, I flipped over to PowerShell and ran ADPlus to grab a mini dump of the Explorer process so I could include the mini dump with bug report.

If you’re not familiar with ADPlus, you should be. It’s a wonderful VBScript program that allows you to build a script for CDB the console version of WinDBG. With ADPlus, you can grab mini dumps of a process at any time, which is a hang mode attach. Additionally, you can attach in crash mode, which allows you to set breakpoints or specific exception processing to get mini dumps and logging exactly when need it. ADPlus is the tool for dealing with production problems. For more information on ADPlus, read the documentation, or see my book, Debugging .NET 2.0 Applications.

Running ADPlus in hang mode and the –pn (process name switch) to get the dump of the hung Explorer process, showed something disturbing:

>adplus -hang -pn explorer.exe -o c:junk
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

The following requested processes are not executing:
EXPLORER.EXE;

If Explorer isn’t running, there’s not a whole lot you can do with a Windows machine! While I was definitely looking at the hung Explorer, I thought maybe there was a hidden instance or something that wasn’t allowing me to attach to the correct Explorer process. Using Process Explorer, I got the process ID of the hanging Explorer window and ran my ADPlus command again with the –p switch to specify the exact instance I wanted the mini dump.

>adplus -hang –p 2756 -o c:junk
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

The following requested processes are not executing:
2756;

As I had the Debugging Tools for Windows package version 6.10.2.233 on Windows 7 and a Windows Vista machine, I tried the same commands on Vista and, of course, ADPlus found the process in both cases and produced great mini dumps. It didn’t take a rocket scientist to figure that something was different on Windows 7.

Having used ADPlus for many years, I knew that ADPlus found processes by running TLIST.EXE, which is part the Debugging Tools for Windows installation. ADPlus saves the output of running TLIST.EXE in the Hang_* output directory in Process_List.txt.

Comparing the Vista version and the Windows 7 versions of Process_List.txt it was blindingly obvious what was wrong. On Vista, the output looked like the following for all processes:

1 32 488 csrss.exe Title:
Command Line:
0 32 532 services.exe
Command Line:
1 32 564 winlogon.exe
Command Line:

The first number is the windows session, the second is the bit-ness level, and the third is the process ID.

On Windows 7, the same version of TLIST.EXE showed the following for interactive processes (interestingly, non interactive processes are reported with the same as Vista):

[0] 1 32 1360 Test.exe Title:
Command Line: “c:junktest.exe
[0] 1 32 5828 powershell.exe
Command Line: …

Yes, we have an extra “[0] ” on Windows 7. I not sure what the extra value means, because it’s not mentioned in the documentation, but I suspect it might be something to do with a Terminal Server session.

Cracking open ADPlus.vbs, and spending 10 minutes debugging through the Process_List.txt parsing code proved my hypothesis. Three more minutes thinking and I had the fix.

Unfortunately, according to the REDIST.TXT in the Debugging Tools for Windows package, ADPlus is not redistributable so I don’t think I can the complete updated fix. However, it’s simple to tell you how to do the fix on your own. In your favorite text editor, open ADPlus.vbs and verify the VERSION constant at the top of the file is 6.03.004. If it is to line 2,181 and you’ll see the following code.

While not objTextFile.AtEndofStream
strAux = objTextFile.ReadLine
If instr(strAux, “Command Line:”) = 0 then
if PCount > ArraySize Then
ArraySize = ArraySize + 50
Redim Preserve g_CurrentProcesses(ArraySize)
End If
‘ parsing PID, PNAME and PackageName if existing
StrLength = Len(strAux)

Directly after the line “StrLength = Len(strAux)” (line 2,189) add the following:

””””’
‘ Changes by John Robbins to fix the parsing bug.
‘ The bug is that on Win7 and some Vista machines, TLIST.EXE adds
‘ an extra value on the front of the string.
‘ ADPLUS is expecting the string to look like the following:
‘  0 32  532 services.exe
‘ Interactive processes on Win7 look like the following:
‘ [0]  1 32 2756 explorer.exe    Title: Program Manager
‘ To fix the parsing, I need to get rid of that “[0] ” before the
‘ string goes to the rest of the parsing code.
””””’
If Left(strAux,4) = “[0] ” then
‘ Remove those those characters.
strAux = Right(strAux, StrLength – 4)
‘ Update the string length as it’s used below.
StrLength = StrLength – 4
EndIf

Note that Microsoft digitally signed ADPlus.vbs so this addition will mean the digital signature is now invalid. You may want to delete the digital signature in the big comment at the bottom of the file.

Once I added this quick fix for the extra “[0] ” from running TLIST.EXE on Windows 7, ADPlus properly wrote the my mini dump of the hung Explorer process but there was one other issue I ran into, but it was with CDB.

As part of the normal hang mode commands ADPlus has CDB run is “!handle 0 0” which dumps the handle table for the process showing the handle type information. With the Debugging Tools for Windows version 6.10.2.233 on Windows 7, the command goes into an infinite loop. A quick test showed this same problem in WinDBG as DBGENG.DLL does the real work for both debuggers. The good news is that you have two options to get past this hang. If you’re using CDB, you can press CTRL+C and in WinDBG, press CTRL+BREAK, and you will pop out of the stuck loop.

Let’s keep our fingers crossed for an official Debugging Tools for Windows release that will address both these issues. Let me know if you’re having any other issues with ADPlus and I’ll see if I can help you out. Also, if you’re running Windows Server 2008 R2, let me know if the fix for ADPlus works there as well.

Atmosera Web Help Desk or WHD

In an effort to continue delivering more value to our customers, we implemented a web-based application built on the SolarWinds Web Help Desk software (https://www.solarwinds.com/help-desk-software). Our goal is to improve the ability for our customers to create tickets, view their status, and communicate more efficiently with our team. We are confident this will result in faster resolutions and clear communication.

  • Below you can find the following details About Atmosera Web Help Desk (WHD):
    • How Can I Get Access to Atmosera’s Web Help Desk?
    • How Many WHD User Accounts Can My Company Get?
    • Known Issues with Multiple Microsoft Logins
    • Can I Get More User Accounts If I Need Them?
    • How Can I Change Who Is an WHD User?
    • How Can I See All Tickets for my Company?
    • What Is a Super User?
    • Can I Still Open a Trouble Ticket by Sending an Email to support@atmosera.com?
    • What Will Happen to the Current Trouble Ticket System?
    • Can I Send Updates to a Distribution List?
  • Tutorials
    • Create a Ticket
    • Manage Tickets
    • Reset Your Office 365 Password
    • Forward Emails
    • Mobile Access Using an iPhone or Android device

How Can I Get Access to Atmosera’s Web Help Desk?

Web Help Desk (WHD) Users for each customer will receive login instructions via email when their account is created.

Access Portal

How Many WHD User Accounts Can My Company Get?

Contact your Customer Success Manager (CSM) to identify how many logins you will receive.

Atmosera’s policy is that these accounts are assigned to individuals who will receive login credentials.

If you have a third party vendor who needs to have access, additional seats will be required.

An 0ffice 365 mailbox account will be created for each Web Help Desk (WHD) User. The mailbox address will be [clientID]-[firstInitial][lastname]@atmosera-portal.com. (e.g. Craig Smith at company id 12345 would be 12345-csmith@atmosera-portal.com). The new Web Support System will send emails to this email address and will only accept emails from that address. You can configure this email address to forward to your normal address; however, email responses on tickets back into Web Support will need to come from the email address that we provide; otherwise they will be denied. You do have the option to just update your tickets via the WHD Portal also.

Known Issues with Multiple Microsoft Logins

The portal uses Microsoft credentials to log you in. If you use other Microsoft accounts such as Officer 365, you will likely need to log out before attempting to login to the portal. Some users are experiencing issues related to conflicts between multiple logins in issue. Logging out and restarting your browser will take care of any such conflicts.

Can I Get More User Accounts If I Need Them?

Yes, any authorized Web Help Desk (WHD) User can log into WHD and submit a ticket to have a new user created.
We need first name, last name, email, and phone number.
The process takes up to two (2) business days to complete.

How Can I Change Who Is an WHD User?

Existing Web Help Desk (WHD) Users can submit a request using WHD to remove WHD Users.
The process takes up to two (2) business days to complete.

How Can I See All Tickets for my Company?

By default, all Web Help Desk (WHD) Users are only able to see the tickets they created using their account.
Any WHD User can be promoted to Super User status which allows them to see all tickets for their company.
To enable Super Users, submit a ticket or contact your Customer Success Manager (CSM) and identify which WHD Users need to be promoted to Super User status.

What Is a Super User?

A Super User is granted rights to see all tickets for their company regardless of which WHD User created them.

Can I Still Open a Trouble Ticket by Sending an Email to support@atmosera.com?

Once a customer has been moved to Web Help Desk (WHD), users can only create tickets using the Portal.
Sending emails to support@atmosera.com will result in the sender receiving an auto-response pointing them to the Portal.

What Will Happen to the Current Trouble Ticket System?

The current system based on BMC Footprints will be retired shortly after the launch of the new WHD application.
We will maintain tickets already created ahead of the cut over and work them to resolution.
When WHD goes live, all new tickets will be generated and managed with the new application.

Can I Send Updates to a Distribution List?

Yes, Web Help Desk uses an Office 365 account to login WHD Users.
Office 365 accounts have the ability to forward all messages to another email address.
Follow the directions below to setup email forwarding using your Office 365 account.
This process makes it possible for Web Help Desk (WHD) Users to forward correspondence to another email and/or a distribution list.

Create a Ticket

Access the Atmosera WHD Portal: https://websupport.atmosera.com/

Click on the image to see a larger view

 


Manage Tickets

Access the Atmosera WHD Portal: https://websupport.atmosera.com/

Click on the image to see a larger view

 


Reset Your Office 365 Password

Access the Office 365 Portal: https://login.microsoftonline.com

Click on the image to see a larger view

 


Forward Emails

Access the Office 365 Mailbox Settings: https://www.office.com

Click on the image to see a larger view

 



Mobile Access Using a iPhone or Android Device

Access the Atmosera WHD Portal: https://websupport.atmosera.com/

Click on the image to see a larger view

We deliver solutions that accelerate the value of Azure.

Ready to experience the full power of Microsoft Azure?

Start Today

Blog Home

Stay Connected

Upcoming Events

All Events