BlackBerry - how to interpret sysout console output while debugging - debugging

I'm having trouble chasing down a new bug in my BB app. I would like to gain understanding of the Console logging output that RIM provides.
Background is: I can't get it to break on simulator, so am running a JDE-4.5-compiled app on a Torch device. Using on-device debugging through Eclipse (on Windows).
Some minutes into running the app, I can get it to crash - there are lots of web service calls happening all the time, with lots of UI updates to rows in a list. When the app crashes, Eclipse does not catch the exception.
I have inspected the system log (ALT-lglg) but there are really a lot of messages in there, mostly referring to the message/event loop. However, I can find no reference to my code in them. I will further investigate the log (having downloaded it thanks to Max Gontar on Blackberry console output). However, with this current post I am asking more about the interpretation of the console output, rather than general BB debugging tips.
The output on crash is the regular popup box saying:
Uncaught exception: Application ITrack(307) is not
responding; process terminated
Question is: How do I interpret the attached console output - specifically I feel that the VM:... lines might hold some useful info, but I can find no resources with Google on their meaning?
Below the console output (separated with comments from what I already understand):
-My debug output - web service complete, JSON logged. Previous lines on console are almost all similar to this - this is the app running correctly:
Response received: 5
{"lng":"28.256607055664063","lat":"-25.828020095825195","zip_postal":"","city":"Pretoria","town":"Pretoria","road":"Alandale Street","suburb":"Elardus Park","region":"Gauteng","country":"South Africa"}
response success: 5
-CRASH!!!:
VM:ECTTv=1,w=0
Application ITrack(307) is not responding; process terminated
-These lines are somehow related to one of the errors - I see them duplicated in the device log:
[0 2]
0 2
-<SNIP> - 0 2 gets repeated 62(!) times:
0 2
3d 3501
0 2
0 2
0 2
0 2
3d 3502
0 2
-<SNIP> - 0 2 gets repeated another 31 times:
-This part gives some info on the Objects that are being used as Thread locks at the time of the crash. More info is required.
VM:THMNx=177,r=0x19965800,t=java.lang.Object
VM:THMNx=147,r=0x19966400,t=net.rim.vm.Message
VM:THMNx=177,r=0x20AC00,t=CHAR[]
VM:THMNx=147,r=0x197CD000,t=net.rim.vm.MessageQueue
VM:THMNx=138,r=0x228D8800,t=net.rim.device.cldc.io.proxyhttp.ClientProtocol
VM:THMNx=129,r=0x22718C00,t=net.rim.device.cldc.io.proxyhttp.ClientProtocol
-This part I know nothing about.
VM:THDRr=native
VM:THDLv=0
VM:ECTTv=0,w=0
-App has crashed, system is cleaning up and returning to Home Ribbon screen:
AM: Exit ITrack(307)
ApplicationManagerImpl.processExited : process process switching to background: pid=307
Process ITrack(307) cleanup started
Process ITrack(307) cleanup done
AM: Foreground is requested: net_rim_bb_ribbon_app(109)
TID:unable to execute in the app com.mix.ITrack.main.Application#1a29405e|java.lang.Object#7fbc2b0a|-1
FocusHistory: Focus gained; App ITrack; Component com.mix.ITrack.shared.mix.ui.controls.DynamicRowListField
FocusHistory: Focus lost; App ITrack; Component net.rim.device.apps.internal.ribbon.launcher.ApplicationAreaGridField
FocusHistory: Focus gained; App net_rim_bb_ribbon_app; Component net.rim.device.api.ui.component.ButtonField
AM: Foreground is set: net_rim_bb_ribbon_app(109)
ApplicationManagerImpl.setForegroundProcess : calling notifyApplicationSwitch to switch to foreground: process=net_rim_bb_ribbon_app(109) pid=109
Is there any info in here that looks useful to someone with more experience on BB than I have?
Has anyone any info on interpreting the VM:... lines?
(Please note I am not asking for general BB debugging advice, as there are already some great answers on stackoverflow about that. However I would love to this 'mysterious' RIM logging code.)

to start off: according to this BlackBerry forum answer by klyubin, the lines starting with VM:THMNx= refer to the locks being held at the time of the crash.

Related

How to cron an AppleScript (with arguments) that accesses Reminders

I wrote an AppleScript to synch my Reminders (via export to JSON). It runs great... from the Script Editor. As soon as I tried to run it on the command line via osascript, I discovered it hits a wall when it tries to access reminders. After maybe a minute and a half, I get this error:
/Users/robleach/Temporary/synchRemindersTest.scpt: execution error: Reminders got an error: AppleEvent timed out. (-1712)
I also noted these errors in the console:
error 19:33:49.628309-0400 tccd Refusing client without path (from responsibility_get_responsible_audit_token_for_audit_token) PID[1422]: (#3) No such process
error 19:33:49.628370-0400 tccd Refusing TCCAccessRequest for service kTCCServiceReminders from invalid client with pid 1422
Assuming it was a permissions issue, I looked in System Preferences>Security & Privacy>Reminders, and noted that osascript is not there, nor do I have ± buttons to add it, even after authenticating.
I wondered whether saving the script as an app would prompt the Security stuff to prompt me to enable it - and that I could cron the opening of that app, but if I do that, I won't be able to pass arguments to the script (or at least, I don't know how to do that). Plus, I'd rather everything happen in the background, without a dock icon or anything (aside from the Reminders app needing to be open).
I wrote a toy example of the script that produces the timeout error:
TOY 1
tell application "Reminders"
return (properties of every reminder whose completed is false)
end tell
And I call it like this:
> osascript /Users/robleach/Temporary/synchRemindersTest.scpt
Is there a way to allow the osascript run of the script to be allowed access to the reminders? Could I like code-sign the command line executable or something? If I were to write this in another language, would it have the same issue?
I'm running Catalina 10.15.7.
UPDATE 1
I dug some more into the console. There are number of other, potentially relevant errors. I think it actually is a timeout. When I run it in Script Editor, it runs in about 40 seconds, but it times out when I run it via osascript (at maybe around a minute and a half).
However, I recalled that I have another script on a cron job that accesses reminders, and I did not remember it having an issue. So I tested it, and for whatever reason, it executes a very similar command, but succeeds. And it runs much faster in the Editor than it does on the command line from osascript. I pulled that one line out of that script that succeeds and wrapped it in a toy script:
TOY 2
tell application "Reminders"
set theList to "ToDo Home Recurring"
set namesDates to {name, due date} of (every reminder in list theList whose completed is false)
display dialog "Got " & (count of namesDates) & " reminder names & dates"
end tell
and it failed via osascript with the same timeout error. Then I pulled out another line and added it to the toy:
TOY 3
tell application "Reminders"
set theList to "ToDo Home Recurring"
show list theList
delay 0.25
set namesDates to {name, due date} of (every reminder in list theList whose completed is false)
tell application "System Events" to display dialog "Got " & (count of namesDates) & " reminder names & dates"
end tell
...it succeeds. So I don't think this is a permissions issue any longer. This feels like it maybe has to do with how efficiently osascript accesses Reminders.
I also started noticing that my first toy example above sometimes fails when run from the script editor. I kept retrying it to get the running time I pasted above and I started to sense a pattern. I think that when I select a new list to view in the Reminders GUI (it doesn't matter which one), then run the script (from the editor), it works. But if I don't select a new list to view and run the script from the editor again, it fails with that timeout.
...but that seems nuts. Can anyone explain what's going on here?
NOTE: The script I'm writing is actually an AppleScript re-write of a Siri Shortcut I wrote (that runs reliably in around 25ish seconds). Since I wanted to automate it and run it more than once a day, I decided to use AppleScript.
UPDATE 2
I tried the answer suggested by #Robert Kniazidis.
TOY 4 (modification of TOY 1)
with timeout of 3600 seconds
tell application "Reminders"
set allRems to (properties of every reminder whose completed is false)
display dialog "Got " & (count of allRems) & " reminders"
end tell
end timeout
...and kept a closer watch on the console.
Attempt 1 (TOY 4)
I ran TOY 4, starting at 7:25:24, for 10 minutes, then control-c'd it. I immediately saw numerous errors in the console. I searched the console for "Reminders" and here's what I go during the run.
Attempt 2 (TOY 4)
Then, given my insights regarding my annecdotal successes when I click a list name in the Reminders GUI, I tried clicking on a random list and ran TOY 4 again immediately after. I started TOY 4 at 7:38:23. At 7:44:22, it succeeded! That's about 6 minutes!
The console had many fewer messages in it, none of them marked as error. For comparison's sake, here are the console results from searching for "Reminders".
Discussion
I have revised my theory about what's happening. Given the console messages, I infer that when you run by osascript from the command line, the script is identified as "indirect access", and as such, is subject to a higher level of security-scrutiny, thus is takes much longer to execute. Perhaps when I "click in the GUI" (or even via AppleScript, show list theList), the security concern is still considered "indirect", but is not totally unknown to the user because the GUI is changing, so is subject to somewhat less scrutiny, and thus takes 6 minutes as opposed to somewhere over 10 minutes.
If that's true, it is interesting to note that that lesser level of scrutiny is applied even if the Reminders GUI is on a different desktop (as has been the case in my tests*).
UPDATE 3
I tried ad-hoc code-signing this morning with:
codesign --force -v -s - synchRemindersTest.app/Contents/Info.plist synchRemindersTest.app/Contents/PkgInfo synchRemindersTest.app/Contents/Resources/applet.rsrc synchRemindersTest.app/Contents/Resources/Scripts/main.scpt synchRemindersTest.app/Contents/Resources/applet.icns
...and ran the app again, which was a version of TOY 1. Still got the timeout error. I was hoping it would take 40s, like when run from the script editor. When I get time, I'll try it again but manually select a list in the Reminders GUI.
UPDATE 4
I ran the same toy as in update 3 again just now. For the 2 minutes it ran before the timeout, the console was filled with 52,349 lines of mostly this, repeating over and over, which is only the portion of that timespan that matched the search term tccd.
I also have noted that the same unmodified script, run at different times, will succeed in some runs and fail on others. Such as:
TOY 5 (synchRemindersTest5.scpt)
with timeout of 600 seconds
tell application "Reminders"
show list "ToDo Home"
set startt to (get current date)
set allRems to (properties of every reminder whose completed is false)
set endt to (get current date)
set dur to (endt - startt)
set msg to "Got " & (count of allRems) & " reminders in " & dur & " seconds"
tell application "System Events" to display dialog msg giving up after 5
return msg
end tell
end timeout
I ran it repeatedly yesterday, successfully, but I get the timeout when I run it today:
[Jun 08 22:59:51]:~/GoogleDrive/Scripts>osascript synchRemindersTest5.scpt
Got 166 reminders in 287 seconds
[Jun 08 23:06:17]:~/GoogleDrive/Scripts>osascript synchRemindersTest5.scpt
Got 166 reminders in 291 seconds
[Jun 08 23:11:45]:~/GoogleDrive/Scripts>osascript synchRemindersTest5.scpt
Got 166 reminders in 293 seconds
[Jun 08 23:17:46]:~/GoogleDrive/Scripts>osascript synchRemindersTest5.scpt
Got 166 reminders in 300 seconds
[Jun 09 8:23:28]:~/GoogleDrive/Scripts>osascript synchRemindersTest5.scpt
synchRemindersTest5.scpt: execution error: Reminders got an error: AppleEvent timed out. (-1712)
Footnotes
* I've been testing my scripts intentionally with the Reminders app on a different desktop because I have noted in my efforts that GUI scripting is always faster than accessing via the Reminders dictionary. So I wrote 2 methods: GUI and Reminders Dict. The GUI one will run if the open Reminders app is on the desktop (which I keep tucked under the dock). If we're watching Netflix full screen, I have a try/catch to use the slower Reminders Dict access method when the GUI is, as in that case, on a different desktop.
Wrap your script with timeout of 3600 seconds (1 hour). Your script time outs with default time = 2 minutes (120 seconds) per command. So,:
with timeout of 3600 seconds -- or 600 seconds, or as you want
tell application "Reminders"
return (properties of every reminder whose completed is false)
end tell
end timeout
Seing your TOY 4 once again. Man page of osascript says: Any arguments following the script will be passed as a list of strings to
the direct parameter of the ``run'' handler. So, your TOY 4 should be like this:
on run argv -- THIS
with timeout of 3600 seconds
tell application "Reminders"
set allRems to (properties of every reminder whose completed is false)
display dialog "Got " & (count of allRems) & " reminders"
end tell
end timeout
end run -- and THIS
I tried this script in the Terminal, using following command, and it successfully asked for access to Reminders, and worked after access granting. Note quotes as well:
osascript '/Users/123/Desktop/synchRemindersTest.scpt' 'output.json' 'Reminders' 'ToDo'
I did not figure out exactly what was causing the issues, but I repeatedly tried the same exact code with varying results/behaviors, apparently depending on various circumstances. Here are my observations.
Using any of the toy examples, there were 2 running behaviors that seemed to change:
runtime (fastest I could get was near half a minute, but the same code could take over 10 minutes in certain cases - I control-c'd them, so I don't know how long they'd have run)
tccd and other errors in the console (having to do with Apple's mechanism for "transparency, consent, & control" - i.e. the thing that makes those access request popups happen)
I tried running the toy examples above in the following ways:
From Script Editor
Via osascript from the command line
Rewritten as Javascript for Automation (aka "JXA") (from script editor)
As an app, double-clicked
As an app opened from the command line
And I ran those various methods under the following various circumstances (where possible):
Immediately after unlocking the screen
With the Reminders App open on the current desktop
With the Reminders App open off the current desktop
Without manually interacting with the Reminders GUI prior to running
With manually interacting with the Reminders GUI prior to running
With including an applescript instruction to show a list in the Reminders GUI
Without including an applescript instruction to show a list in the Reminders GUI
And there's one other important factor to take into account:
Reminders database size
Apple doesn't actually ever delete anything from the reminders database. I currently have 9,604 completed reminders and 193 incomplete reminders. While exploring this issue, I discovered reminders over a decade old in my reminders database.
I suspect that the issues have more to do with the size of the database than the tccd errors, as I found threads on the Apple Developers forum that describe those errors as mere log noise. I also found posts by developers who note that the ever growing size of the reminders database leads to growing performance issues, and noted that there's no way to really delete entries. Deleted entries are simply labeled as deleted.
I have found that there is no reliable running context that runs both fast and without errors under every circumstance (when you have a large Reminders database). All the ways of executing fail under certain circumstances. Some cases run faster than others, but none ever run in what I would consider a reasonable running time.
I tried code-signing an app version of the toy scripts, explicitly granting entitlements to the reminders data, but according to an app called Taccy, while I could retrieve those entitlements from the files to which they were applied, they did not prevent the tccd errors or make any of the cases run faster. I even tried code-signing a copy of the osascript executable, but apparently it only works for app bundles.
While I could see a difference in runtime under certain circumstances and could avoid tccd errors by doing things in a certain way in some circumstances (all seemingly requiring true manual actions), the runtimes were never significantly improved and errors/failures seemed unavoidable in cases where for example, the screen was locked.
So I concluded that given the size of my reminders database and the fact that I wanted to run this script with the screen locked (e.g. on a cron job), I had to abandon an AppleScript solution. It's impossible to do it predictably & reliably. (I had briefly explored a Siri Automation on an iOS device, but discovered the hoops to jump through to get it to run more than once a day were too annoying.)
So remembering that reminders were(/used to be) stored as ics files in the Library folder. I learned that with the Reminders update in iOS 13 & macOS Catalina, storage of reminders had moved to an sqlite database under ~/Library/Reminders/Container_v1/Stores.
I poked around in the database last night and started to figure things out. I googled some of what I found and found a single google hit to a github repo that had already worked the difficult sqlite stuff out. I ended up with a shell script that reliably retrieves all reminder data (nearly 10k records) in about 1 second!
I have yet to refine it to convert it to JSON and to additionally retrieve anything modified after a certain date, but what I have so far is sufficient to answer this question.
I wrote the shell script in the (unpopular) shell language of tcsh. Feel free to rewrite it in bash or start from the repo I found, which already is in bash (but doesn't retrieve all reminders data):
set REMINDERS_STORES="$HOME/Library/Reminders/Container_v1/Stores";
set SQL_GET_Z_ENT="SELECT Z_ENT FROM Z_PRIMARYKEY WHERE Z_NAME = 'REMCDList'";
foreach DBFILE ( "$REMINDERS_STORES"/Data-*-*.sqlite )
set DB="file:${DBFILE}?mode=ro"
set COUNT=`sqlite3 "$DB" "SELECT COUNT(*) FROM ZREMCDOBJECT WHERE Z_ENT = ($SQL_GET_Z_ENT) AND ZCKIDENTIFIER IS NOT NULL;"`
if ( "$COUNT" > 0 ) then
set REMINDERS_DB="$DB"
endif
end
set Z_ENT_LISTS=`sqlite3 "$REMINDERS_DB" "$SQL_GET_Z_ENT;"`
set YEARZERO=`date -j -f "%Y-%m-%d %H:%M:%S %z" "2001-01-01 0:0:0 +0000" "+%s"`
set NOW=`date "+%s"`
sqlite3 "$REMINDERS_DB" "SELECT strftime('%Y-%m-%dT%H:%M:%S',($YEARZERO + TASK.ZDUEDATE),'unixepoch') as dueDate, TASK.ZPRIORITY AS priority, TASK.ZTITLE1 AS title, LIST.ZNAME1 AS list, TASK.ZNOTES AS notes, TASK.ZCOMPLETED as completed, strftime('%Y-%m-%dT%H:%M:%S',($YEARZERO + TASK.ZCOMPLETIONDATE),'unixepoch') as completionDate, strftime('%Y-%m-%dT%H:%M:%S',($YEARZERO + TASK.ZCREATIONDATE),'unixepoch') as creationDate, TASK.ZDISPLAYDATEISALLDAY as isAllday, strftime('%Y-%m-%dT%H:%M:%S',($YEARZERO + TASK.ZDISPLAYDATEDATE),'unixepoch') as alldayDate, strftime('%Y-%m-%dT%H:%M:%S',($YEARZERO + TASK.ZLASTMODIFIEDDATE),'unixepoch') as modificationDate, TASK.ZFLAGGED as flagged FROM ZREMCDOBJECT TASK LEFT JOIN ZREMCDOBJECT LIST on TASK.ZLIST = LIST.Z_PK WHERE LIST.Z_ENT = $Z_ENT_LISTS AND LIST.ZMARKEDFORDELETION = 0 AND TASK.ZMARKEDFORDELETION = 0 ORDER BY CASE WHEN TASK.ZDUEDATE IS NULL THEN 1 ELSE 0 END, TASK.ZDUEDATE, TASK.ZPRIORITY;"
Here is an example of the output:
2011-11-01T18:30:00|0|Pay the rent|ToDo Home Recurring||1|2011-11-03T13:21:00|2017-09-18T16:59:00|0|2011-11-01T22:30:00|2020-01-04T20:40:00|0
2011-11-05T15:45:00|0|Feed meter|Reminders||1|2011-11-06T15:39:00|2017-09-18T16:59:00|0|2011-11-05T19:45:00|2020-01-04T20:36:00|0
Note, to get the dates in your time zone, as opposed to GMT(/UTC?), append 'localtime', e.g.:
strftime('%Y-%m-%dT%H:%M:%S',($YEARZERO + TASK.ZDUEDATE),'unixepoch', 'localtime')

Issues with mkdbfile in a simple "read a file > Create a hashfile job"

Hello datastage savvy people here.
Two days in a row, the same single datastage job failed (not stopping at all).
The job tries to create a hashfile using the command /logiciel/iis9.1/Server/DSEngine/bin/mkdbfile /[path to hashfile]/[name of hashfile] 30 1 4 20 50 80 1628
(last trace in the log)
Something to consider (or maybe not ? ) :
The [name of hashfile] directory exists, and was last modified at the time of execution) but the file D_[name of hashfile] does not.
I am trying to understand what happened to prevent the same incident to happen next run (tonight).
Previous to this day, this job is in production since ever, and we had no issue with it.
Using Datastage 9.1.0.1
Did you check the job log to see if captured an error? When a DataStage job executes any system command via command execution stage or similar methods, the stdout of the called job is captured and then added to a message in the job log. Thus if the mkdbfile command gives any output (success messages, errors, etc) it should be captured and logged. The event may not be flagged as an error in the job log depending on the return code, but the output should be there.
If there is no logged message revealing cause of directory non-create, a couple of things to check are:
-- Was target directory on a disk possibly out of space at that time?
-- Do you have any Antivirus software that scans directories on your system at certain times? If so, it can interfere with I/o. If it does a scan at same time you had the problem, you may wish to update the AV software settings to exclude the directory you were writing dbfile to.

Display time in Xcode breakpoint

In Xcode 6 I have created a breakpoint that do not interrupt the program execution to display informations.
Here is the result between results of NSLog calls:
I now want to add a time information to this message as done by NSLog does. How can I achieve this?
Similar behavior
I know how to obtain such a result using Debugger Command but I want to know how to achieve it using Log Message:
As you can see in the hints: #exp#
so you can write this:
#[NSDate date]# - some additional message
Output will be:
2018-06-28 14:06:45 UTC - some additional message
(works only for the 'Log Message' type)
Xcode log time
Using Swift you are able to use #Date().debugDescription# my message (UTC time)

OAS 10g -10.1.2.3.0 forms and reports server, opmn.log is not getting updated

Hi Can you tell which way to drive the analysis for my issue opmn.log is not getting updated. All the instances are working fine and individual instances logs are getting updated but $ORACLE_HOME/opmn/logs/opmn.log is always 0kb since a week time. I could not find any statements reg opmn.log on opmn.xml.
There is a difference in Logging mechanism between (9.0.2 to 10.1.2) and (10.1.3 to later).
(9.0.2 to 10.1.2) log-file path="x" level="x" rotation-size="x"
(10.1.3 to later) log path="x" comp="x;y;z" rotation-size="x"
(9.0.2 to 10.1.2) :
ORACLE_HOME/opmn/logs/ipm.log:
Review the error codes and messages that are shown in the ipm.log file. The PM portion of OPMN generates and outputs the error messages in this file. The ipm.log file tracks command execution and operation progress. The level of detail that gets logged in the ipm.log can be modified by configuration in the opmn.xml file. Refer to Chapter 3, "opmn.xml Common Configuration" for examples of debug levels.
ORACLE_HOME/opmn/logs/ons.log:
Use the ons.log file to debug the ONS portion of OPMN or for early OPMN errors. The ONS portion of OPMN is initialized before PM, and so errors that occur early in OPMN initialization will show up in the ons.log file.
ORACLE_HOME/opmn/logs/opmn.log:
The opmn.log file contains output generated by OPMN when the ipm.log and ons.log files are not available. Typically, the only output written to the opmn.log file will be the exit status of a child OPMN process. A status code of 4 indicates a normal reload of OPMN. All other status codes indicate an abnormal termination of the child OPMN process.
ipm.log(10.1.2) similar to opmn.log(10.1.3)
ons.log(10.1.2) similar to opmn.dbg(10.1.3)

Classic asp (vb6) application crashes with 100% CPU usage

I'm having trouble with an old legacy app that recently started crashing. I'm trying to investigate the DebugDiag analysis, but don't have much luck. Either there is a sql query that locks and somehow the calling thread doesn't die away? Then again callstack points to oledb32!CImpIErrorInfo::GetHelpFile+a1.
Here's the info from DebugDiag which I think is relevant to this problem:
The following threads in w3wp.exe_MyApp_PID_7572_Date__10_21_2010__Time_08_43_22AM_720_Manual Dump.dmp are making a database operation using ADO.
The call to MSADO15!CERRORLOOKUP::GETHELPINFO originated from oledb32!CImpIErrorInfo::GetHelpFile+a1
...clip...clip...
Thread 17 - System ID 4160
Entry point msvcrt!_endthreadex+2f
Create time 21.10.2010 0:08:16
Time spent in user mode 0 Days 00:11:22.781
Time spent in kernel mode 0 Days 00:27:49.953
This thread is making a database operation using ADO.
The call to MSADO15!CERRORLOOKUP::GETHELPINFO originated from oledb32!CImpIErrorInfo::GetHelpFile+a1
Function Source
ntdll!GetUILangID+31
ntdll!LdrpSearchResourceSection_U+186
ntdll!LdrFindResource_U+18
kernel32!FindResourceExW+65
user32!LoadStringOrError+31
user32!LoadStringW+18
msado15!FetchInfo+ba
msado15!CErrorLookup::GetHelpInfo+1e
oledb32!CImpIErrorInfo::GetHelpFile+a1
msvbvm60!ExecProj::SetModuleCount+a
msvbvm60!CEcProjTypeComp::Release+4
msvbvm60!RcmConstructModuleInstance+8f
oleaut32!DispCallFunc+16a
msvbvm60!VBStrToLong+cf
msvbvm60!FileOutString+bb
msvbvm60!_vbaPrintObj+51
MSWCRUN!DllUnregisterDesigner+8ad3
MSWCRUN!DllUnregisterDesigner+accb
MSWCRUN!DllUnregisterDesigner+af8c
MSWCRUN!DllUnregisterDesigner+a7de
MSWCRUN!DllUnregisterDesigner+7b51
MyApp!DllCanUnloadNow+212e
oleaut32!DispCallFunc+16a
msvbvm60!VBStrToLong+cf
msvbvm60!FileOutString+bb
msvbvm60!_vbaPrintObj+51
MSWCRUN!DllUnregisterDesigner+8ad3
MSWCRUN!DllUnregisterDesigner+7d13
MSWCRUN!DllUnregisterDesigner+6e64
MSWCRUN!DllUnregisterDesigner+9097
MSWCRUN!DllUnregisterDesigner+8fa6
vbscript!IDispatchInvoke2+b2
vbscript!IDispatchInvoke+59
vbscript!InvokeDispatch+13a
vbscript!InvokeByName+42
vbscript!CScriptRuntime::RunNoEH+234c
vbscript!CScriptRuntime::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CSession::Execute+c8
vbscript!COleScript::ExecutePendingScripts+144
vbscript!COleScript::SetScriptState+14d
asp!CActiveScriptEngine::TryCall+19
asp!CActiveScriptEngine::Call+31
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!Execute+24c
asp!CHitObj::ViperAsyncCallback+3f0
asp!CViperAsyncRequest::OnCall+92
comsvcs!CSTAActivityWork::STAActivityWorkHelper+32
ole32!EnterForCallback+c4
ole32!SwitchForCallback+1a3
ole32!PerformCallback+54
ole32!CObjectContext::InternalContextCallback+159
ole32!CObjectContext::DoCallback+1c
comsvcs!CSTAActivityWork::DoWork+12d
comsvcs!CSTAThread::DoWork+18
comsvcs!CSTAThread::ProcessQueueWork+37
comsvcs!CSTAThread::WorkerLoop+190
msvcrt!_endthreadex+a3
kernel32!BaseThreadStart+34
...clip...clip...
Client connection from 194.241.111.228:26238 to 81.175.250.2:80
Host Header 81.175.250.2:80
GET request for /MyApp/netk.asp
HTTP Version HTTP/1.1
SSL Request False
Time alive 00:49:33
QueryString
Request mapped to
HTTP Request State HTR_READING_CLIENT_REQUEST
Native Request State NREQ_STATE_PROCESS
Hard to say, but I'd start with throwing ProcessMonitor/RegMon/FileMon/TcpViewer from live.sysinternals.com. Fiddler wouldn't be a bad idea either.
Then, if you still get no clues, I'd break out WinDBG, which is always my nuclear option, because the learning curve is so massive. But, assuming, you learn the commands, you could break on the crash, then walk the stack backwards and potentially figure out where the error is coming from.
And of course, you could just reinstall everything and that will probably solve all your problems.

Resources