The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

Archive for the ‘Debugging’ Category

Don’t spam with OutputDebugString

Posted by jpluimers on 2012/09/13

A production version of an app should not spam using OutputDebugString.

Some apps do, for instance very couple of seconds the “TAM E-SSO AccessAgent” DataProvider.exe process spams stuff like this:

[1952] GRP_StubImpl Inside
[1952] before deserializing the message
[1952] GRP_StubImpl for Policy Id = pid_desktop_inactivity_mins
...
[1952] GRP_StubImpl Inside
[1952] before deserializing the message
[1952] GRP_StubImpl for Policy Id = pid_aa_tray_menu_options_enabled
[1952] GRP_StubImpl Inside
[1952] before deserializing the message
[1952] GRP_StubImpl for Policy Id = pid_automatic_sign_up_enabled
[1952] GRP_StubImpl Inside
[1952] before deserializing the message
[1952] GRP_StubImpl for Policy Id = pid_desktop_inactivity_mins
...

It is in the chain of processes (yes, the tripple backslash is actually there, this is how IBM starts is):

  • “C:\Program Files\Encentuate\AATray.exe”
    • “C:\Program Files\Encentuate\\\DataProvider.exe”
      • “C:\Program Files\Encentuate\Sync.exe”

All of them have version 8.1.0.130 and timestamp 20-12-2010 14:32.

You’d think that IBM knows how to do this right (:

–jeroen

Posted in Debugging, Development, Software Development | Tagged: , , , | Leave a Comment »

Embarcadero has some cool new Delphi iOS technology in the pipeline (via: Xcode – Debug iOS application on device without symbols – Stack Overflow)

Posted by jpluimers on 2012/06/27

Today exactly a month ago, Allen Bauer (Chief Scientist at Embarcadero) asked a really in depth question about debugging the startup sequence of iOS apps on a device not originating from Xcode on Stack Overflow indicating on what Embarcadero is researching.

Last week, he also answered the same question using manual steps for GDB. Not easy, but it works.

For a development tools company, getting your tools to work on a new platform is hard, and in this case it seems exceptionally hard.

I’m really looking forward to see what kind of cool tools come out of this, as the current developemt platform choices (Xcode or MonoTouch) can really use more competition to make it easier for us developers.

Exciting times ahead (:

–jeroen

via: xcode – Debug iOS application on device without symbols – Stack Overflow.

PS:  I really love the comment by Danny Thorpe on using Periscope breakout switches – I remember those NMI days well (:

Posted in Debugging, Delphi, Development, GDB, iOS Development, Mobile Development, Software Development, xCode/Mac/iPad/iPhone/iOS/cocoa | 4 Comments »

Getting TLIST.EXE: Microsoft TaskLister from the Debugger Tools

Posted by jpluimers on 2012/05/09

A few notes on TLIST.EXE:

  1. Lots and lots of articles mention it.
  2. Not all versions of TLIST.EXE will work on all Windows versions (I found a 40k version 3.51 at a client that clearly hangs on their XP systems, where the version 3.50 works fine but is more limited).
  3. It is hard to find an actual download.

This is what I downloaded as I prefer ISO files prefer web-installers:

http://download.microsoft.com/download/4/A/2/4A25C7D5-EFBE-4182-B6A9-AE6850409A78/GRMWDK_EN_7600_1.ISO

I got there through these pages (in reverse chronological order)

–jeroen

Posted in Debugging, Development, Power User, Software Development, Windows, Windows 7, Windows Vista, Windows XP | 1 Comment »

Weaving: Source code, IL, ByteCode, Native

Posted by jpluimers on 2011/06/28

Weaving extends your program adding new functionality.

It can be at different levels for difference purposes (AOP, Debugging, Automated Testing, etc).

This .net – What is IL Weaving? question on StackOverflow contains a few pointers to interesting reading material.

–jeroen

Posted in .NET, Debugging, Delphi, Development, Software Development | Leave a Comment »

Visual Studio 2010: you should run the Remote Debugging Monitor from a local drive to avoid 0x8007000E E_OUTOFMEMORY

Posted by jpluimers on 2011/04/14

Setting up remote debugging is always a precarious thing, no matter what kind of development platform: the online documentation tells you the standard steps, but usually they don’t suffice.

This case is Visual Studio 2010 remote debugging, where the development environment is on a workstation running Windows 7, and the debug target is on Windows Server 2008 R2.
Both are x64 versions.

There is a remote desktop connection to the server, and the server can see the workstation files on the \\TSCLIENT\C share.

This is the error when running msvsmon.exe from \\tsclient\C\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x64:

[Visual Studio Remote Debugging Monitor]
The following error occurred: Not enough storage is available to complete this operation.

View Msvsmon's help for more information.
[OK]

(Funny BTW that the x64 Remote Debugging Monitor is in fact in an x86 path).

The solution is simple: copy the x64 directory local, then start it from there.

The reason in that the user credentials on the server don’t have enough rights on the \\TSCLIENT\C directory tree, so Windows barfs on it.

This pointed me into the right direction when I started Process Monitor from the same \\TSCLIENT\C share: Read the rest of this entry »

Posted in .NET, Debugging, Development, Remote Debugging, Software Development, Visual Studio 2010, Visual Studio and tools | Leave a Comment »

Twitter / Danny Thorpe: New programmers are drawn …

Posted by jpluimers on 2010/10/21

Brilliant and so true:

New programmers are drawn to multithreading like moths to flame, with similar results.

Edit: And this is just one example on how tiny little details can impact threading so much.

–jeroen

via Twitter / Danny Thorpe: New programmers are drawn ….

Posted in .NET, Agile, CommandLine, Debugging, Delphi, Development, Opinions, Software Development | 10 Comments »

.NET/C#: stupid code of the day – Cosmos.Debug.VSDebugEngine

Posted by jpluimers on 2010/10/13

I wasn’t the first one to notice this one, but is hilereous:

bool enabled = fEnable == 0 ? false : true;

Read the rest of this entry »

Posted in .NET, C#, Debugging, Development, Opinions, Software Development | Leave a Comment »

Reading tea leaves – Danny Thorpe

Posted by jpluimers on 2010/05/12

A short while ago, [WayBack] Danny Thorpe posted an answer about multithreading issues on StackOverflow.com [WayBack] which reminded me a lot about a BorCon session he did.
That session is called [WayBack] “Reading Tea Leaves: The Fine Art of Debugging“, it is still very current (a lot of it is not Delphi specific at all: it can be applied to a broad range of platforms), and I was glad to find that [WayBack] Joe White made [WayBack] some great notes and posted them on his blog.

Edit 20100513T0830: (thanks Mario!) Don’t you love 404 :-)
The blog from Joe White seem to be down, and the web archive of his blog didn’t have that particular page, but the google cache has.

–jeroen

PS:
Danny is a great writer; I’m really glad he [WayBack] showed up at StackOverflow.
Here is another very [WayBack] nice answer from him on concurrency in software using read-write, locking, interlocked increment and more.

He found back his slides:

Consolidating a dusty box of ancient DVDRW archive disks this weekend (uploading them to multi-redundant NAS) and looky what I found! I’d given up all hope of ever finding this again. #digitalpackrat ftw!

Hope this brightens your day @jpluimers :) https://t.co/saqq7JA46e

Posted in Debugging, Delphi, Development, Software Development | 3 Comments »

.NET Reflector catch-22

Posted by jpluimers on 2010/04/06

I just found out that the .NET Reflector asks me two questions.

The first is this:

  • This version of .NET Reflector is out of date. Do you want to update automatically?
    (YES / NO)

If I answer NO, then reflector quits, so I’m forced to answer YES.
(the question seems wrong: if you don’t have a choice, then why pose a question?)

When answering YES, you get a message box like this:

After pressing OK, automatically a browser screen opens at this url: http://www.red-gate.com/products/reflector/

That page is an advertisement for the new version 6.0:
NEW: The .NET Reflector download now includes a 14-day, free trial of .NET Reflector Pro.

So the situation now seems this:

  1. You are forced to upgrade to the new Reflector
  2. You have to perform this upgrade manually
  3. It is not possible to install .NET Reflector 6.0 without the trial: when running it, it automatically installs the trial in Visual Studio.

So, 20 months after RedGate acquired Reflector from Lutz Roeder, it seems the new Reflector became a kind of ad-ware.
Did it? Did it not?
That and the impossibility of an automatic update makes me having mixed feelings. It seems I’m not the only one.

–jeroen

Posted in .NET, Debugging, Development, Software Development | 6 Comments »

Delphi – hardcore debugging the intialization of your app, dlls and packages

Posted by jpluimers on 2009/10/15

Recently we got involved with a client having a large and complex application that (historically) consists of

  1. A main .EXE that loads
  2. Many DLLs
  3. Underlying BPLs

One of the biggest problems is debugging the startup sequence.
Somehow, when the Delphi IDE loads DLLs in the initialization sequences of units, it looses its ability symbol tables.

This article describes a few tips on how to debug those, especially where to put breakpoints.
Read the rest of this entry »

Posted in Conference Topics, Conferences, Debugging, Delphi, Development, Event, Software Development | 3 Comments »