Recently Browsing 0 members
No registered users viewing this page.
I have passed my code to another co-worker and he said when he runs the script, he gets an ERROR on line 9544 - the problem, I have only 7100 lines in my script - I was wondering if there is a command/function, that I can put in my script to tell me what UDF file is creating the error?
I am trying to drill it down, but was hoping that there was some indication within the error that would help -
Line 9544 (File "path to exe"):
Error: Variable used without being declared
Edit: ps, I went through my code after adding Opt('MustDeclareVars', 1), and declared all my variables
please bare with me for a moment here...
My goal: To be able to take the error line number returned by the EXE file and locate the actual line in the source.
I believe most of the AutoIt users are coming to this issue at some point.
I realize the final source, before the compilation is done, is the combined source of all the include files and the main script etc. So I figured if I have a way to get this combined source, that would give me a solution to this problem. And I spent the last couple of days (more than 10 hours a day) searching in the forum and asking some questions in different threads. And with the help of few people, I found a way (using the Obfuscator) to get this source and the line numbers were actually MATCHING!
However this solution introduced a WHOLE LOT of other problems for me and broke some of the functionality in my script since it has a lot of Call() and ObjEvent() functions. My code turned out to be un-obfuscatable. And for the record, I do not need any obfuscation done at all, nor I need the unused included functions stripped down (even though it made my EXE a 30% smaller). I needed the Obfuscator just to get this final piece of code to be able to achieve My goal.
So all this got me thinking... Please correct me if I'm wrong, because I don not have any knowledge of the internals of a compiler.
Since Aut2exe is the one that combines all the code together and then working it's magic to create the EXE, there should be a pint in this process where that code is available in its final form. Then why isn't there a command line option to dump the final combined source in a file just before it is compiled?
Once again, I do not know the internals of the compiler but my logic dictates that this would be the most reasonable and straightforward solution.
Please share your thoughts and also, if any of you knows a way to achieve my goal without using the Obfuscator, I would LOVE to here it!
EDIT: And here is the solution: ( I've tried to explain it as simply as I can, so even the beginners can understand it.)