Sign in to follow this  
Followers 0
tommytx

How to trap a line number when an include is called out....

11 posts in this topic

As I am sure we are all familiar with the failure of a line number in the midst of thousands of line numbers in one of include files such as ie.au3...

So here is the question... when the error calls out the line in the IE.au3 for example line 3677, is there a way to track this back to the line in the program that called out that sub in the ie.au3 include file...

Generally it is a problem with objects in my case... for example...

Line 164 below failed and was in fact called out as line 164, but in most cases these failures call out line 3677 in the IE.au3 include file...

Line 164 $oDiv1.innerHTML = $mycnt

So bottom line as I load and parse different html files using code like below I get many Line 3677 errors..in the IE.au3 include... and its difficult to figure out which line in my program called the 3677 section and threw the error.. Is there any way to correlate a line 3677 or other include errors to the line in the program that was active at the instant and called that sub...

$sText = _IEBodyReadText($oIE1)
 $results = StringInStr($sText, "There are currently no jobs available")
 if $results = 0 then DoLockOut()
 _IELoadWait($oIE1)

 if $results >= 0 Then
 $results = StringInStr($sText, "checking for new assets")
 $oDiv = _IEGetObjById ($oIE1, "theTime")
 $cntdn = StringMid($sText, $results-3, 2)
 $cntdn = StringReplace($cntdn, chr(10), "")
 $oDiv1 = _IEGetObjById ($oIE1, "theDog")
 If Not $cntdn then $cntdn= "0"
 $mycnt = "<h1>" & $cntdn & "</h1>" & @crlf  & $mytime & " min to log off"

Line 164 $oDiv1.innerHTML = $mycnt

if $cntdn < 3 then _FileWriteLog($tempdat," CFA " & $cntdn & @CRLF)
EndIf

Sleep(100)
EndFunc

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

i think not without modifying the function you get the error in.

Example:

; --Main script.au3--
_IEFrameGetObjByName($obj, "test", @ScriptLineNumber)



; --IE.au3--
Func _IEFrameGetObjByName(ByRef $o_object, $s_Name, $iSLN = -1)
    ConsoleWrite("_IEFrameGetObjByName called from line: "& $iSLN & @CRLF)
    
    ..... ; normal function
    
EndFunc   ;==>_IEFrameGetObjByName

or use a global variable

Edited by qsek

Teamspeak 3 User Viewer - Quick and functional TS3 Query script, which shows online users.Cached Screenshot Deleter - Deletes older Fraps Screenshots if they exceed a specified limit.Unresolved Topics:Intercept and modify dragdrop text behaviour in scite

Share this post


Link to post
Share on other sites

Based on what you have provided, I wonder why you don't check to make sure $oDiv1 is an object before using a particular method or property on it? Or am I missing something?

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Anyone have a work-around to get the equivalent of @ScriptLineNumber for compiled scripts? I just did a minimal test script and it outputs -1. It would be handy if there was some way to simulate the macro for compiled apps. Something like C/C++ __FILE__ and __LINE__ that worked for compiled programs. That would make it easier to sprinkle in MsgBox calls without having to hand code each one.

By them being identical .. something like MsgBox(0x1040,"Debug", @@FILE@@ @@LINE@@) it would be easy to remove them via simple search and replace. Could come in handy for things that just don't work in non-compiled script like messing with resources or whatnot.

Edited by MilesAhead

Share this post


Link to post
Share on other sites

Have a look here >> though @ScriptLineNumber is really on intended for scripts run in SciTE.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Have a look here >> though @ScriptLineNumber is really on intended for scripts run in SciTE.

Thanks for the link. That's an interesting thread. I was playing around a bit in the past with Obfuscator to get a "one file source" from a program with multiple includes. Now I'll play around with the new merge option and see what gives. :oops:

Share this post


Link to post
Share on other sites

From the tests I did the results were far beyond what I expected. Jos worked really hard on Obfuscator during that thread.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

From the tests I did the results were far beyond what I expected. Jos worked really hard on Obfuscator during that thread.

One thing I didn't understand from the thread was how to trigger an error that generated a line number, from a compiled script. Or is it just to get a correct error line from an include file? There's no Throw() or Raise() function that I could find. And if I do Local $quotient = 1 / 0 it still doesn't get through to the system. So I'm at a loss to know how to get a compiled error that doesn't display -1.

Edited by MilesAhead

Share this post


Link to post
Share on other sites

I came up with a total kludge alternative to MsgBox with the line number. I have a hotkey in the tray that pastes in a couple of lines of code that call a _DebugEdit() function I wrote. The call for @compiled inserts a Guid string. The call for not compiled uses @ScriptLineNumber. It uses this info and @ScriptFullPath to open SciTE with the script then seek to the last call of _DebugEdit() that ran. Either searches on the Guid String or uses Go To Line editor function. A wicked kludge. But it is a macro language after all. Fun to jury rig stuff. :oops:

Share this post


Link to post
Share on other sites

Ok, ran the beta Obfuscator with /mo. I see what's up now. Thanks for the heads up. :oops:

Share this post


Link to post
Share on other sites

Ok, ran the beta Obfuscator with /mo. I see what's up now. Thanks for the heads up. :oops:

You're welcome.

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0