Isn't trace() is just a public function in the unnamed package? I'd try putting
a file with
package
{
public function trace(...args):void
{
var i:int = 0; // set breakpoint here
}
}
on the source path. Then mxmlc should find this trace() instead of the trace()
in playerglobal.swc. But I've never tried monkey-patching a non-method, or
anything that is native.
- Gordon
-----Original Message-----
From: Alex Harui [mailto:[email protected]]
Sent: Wednesday, January 23, 2013 9:56 AM
To: [email protected]
Subject: Re: AW: tracking down where "[trace] null" statements are comming from?
I'm not sure how to do that.
But consider this: When the flex tool chain creates a SWF in release mode, it
cleans out trace statements, so whatever is spitting a trace has debug code in
it. The swfdump decompiler will certainly show you what SWFs have debug code
in it.
Then, I generally use divide and conquer by placing breakpoints and seeing if
the flashlog.txt has the trace in it. But once you get to a "reasonable"
boundary around the area, you can also use the poorly documented
flash.trace.Trace to dump all function calls leading up to the trace statement.
On 1/23/13 9:48 AM, "Gordon Smith" <[email protected]> wrote:
> Is it possible to monkey-patch trace() to substitute your own version,
> and set a breakpoint in it?
>
> - Gordon
>
> -----Original Message-----
> From: Michael Montoya [mailto:[email protected]]
> Sent: Wednesday, January 23, 2013 4:02 AM
> To: [email protected]
> Subject: Re: AW: tracking down where "[trace] null" statements are
> comming from?
>
> Hey Chris,
>
> This may be a long shot, but how about using a an swf decompiler? I
> remember ising Trillix awhile back and was very impressed by the
> amount of detail provided in the diagnostics - It may pinpoint the
> source of your trace statement...
>
> Cheers!
>
> On Jan 23, 2013, at 11:46 AM, "[email protected]"
> <[email protected]> wrote:
>
>> Hi Omar,
>>
>> thanks for that input ... I knew that "trace" is a Flash function. I
>> was simply hoping for some guru here to give me a hint to the
>> "ultimate way to debug this" ;-) As it would help quite a lot ...
>> especially when having AMF serialization/deserialization problems
>> (The other type of problems that seem to be really hard to debug)
>>
>> Chris
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Omar Gonzalez [mailto:[email protected]]
>> Gesendet: Mittwoch, 23. Januar 2013 11:00
>> An: [email protected]
>> Betreff: Re: tracking down where "[trace] null" statements are comming from?
>>
>> On Wednesday, January 23, 2013, [email protected] wrote:
>>
>>> Unfortunately I can't set a breakpoint to the "trace" function ...
>>> perhaps it would be good if in future versions of flex there would
>>> be the means to somehow do this.
>>>
>>> Chris
>>
>> The trace() function is not a method from Flex it comes from Flash player.
>> There really isn't anything that can be done at the Flex level.
>>
>> I would try to get source code for your 3rd party libraries and
>> search for trace statements. If the source isn't available then
>> you're probably out of luck. Or you can try a decompiler.
>>
>> Also, I don't know enough about Adobe Scout but maybe that could help
>> you narrow it down.
>>
>> -omar
--
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui