Understanding Output Layout Machine Data

I am debugging a crash that I believe is related to auto layout. When a crash occurs, I get a huge amount of information about the output scope that starts out like this:

2015-06-04 13: 23: 44.158 SpeedySend [22084: 861374] Target: {target 0x7f99e06b3730: <500: 242.5, 250: 18443.5> + <500: 1> * 0x7f99e061e570.negError {id: 4899} + <500: 1> * 0x7f99e061e570.posErrorMarker {id: 4898} + <500: 1, 250: -1> * 0x7f99e061f940.negError {id: 4913} + <500: 1, 250: 1> * 0x7f99e061f940.posErrorMarker { id: 4912} + <500: 1, 250: -1> * 0x7f99e061fb40.negError {id: 4915} + <500: 1, 250: 1> * 0x7f99e061fb40.posErrorMarker {id: 4914} + <500: 1, 250 : -2> * 0x7f99e0620890.negError {id: 4807} + <500: 1, 250: 2> * 0x7f99e0620890.posErrorMarker {id: 4806} + <500: 2> * 0x7f99e06496f0.posErrorMarker {id: 4916} + <500 : 2> * 0x7f99e0649f40.posErrorMarker {id: 4920} + <50 ...

and then lasts a very long time and ends like this:

... 250: -1> * 0x7f99e1d77ec0.negError {id: 5023} + <800: 1, 250: 1> * 0x7f99e1d77ec0.posErrorMarker {id: 5022} + <500: 1, 250: -1> * 0x7f99e1d78150. negError {id: 5025} + <500: 1, 250: 1> * 0x7f99e1d78150.posErrorMarker {id: 5024} + <500: 1> * 0x7f99e1d78310.negError {id: 5027} + <500: 1> * 0x7f99e1d78310.posErrorMarker {id: 5026} + <500: 1> * 0x7f99e1d78620.negError {id: 5045} + <500: 1> * 0x7f99e1d78620.posErrorMarker {id: 5044} + <500: 1> * 0x7f99e1d788c0.negError {id: 5031} + <500: 1> * 0x7f99e1d788c0.posErrorMarker {id: 5030} + <500: 1> * 0x7f99e1d78d30.negError {id: 5033} + <500: 1> * 0x7f99e1d78d30.posErrorMarker {id: 5032} + <500: 1 > * 0x7f99e1d790a0.negError {id: 5035} + <500: 1> * 0x7f99e1d790a0.posErrorMarker {id: 5034} + <500:1> * 0x7f99e1d79460.negError {id: 5037} + <500: 1> * 0x7f99e1d79460.posErrorMarker {id: 5036} + <500: 1> * 0x7f99e1d79840.negError {id: 5039} + <500: 1> * 0x74099e. posErrorMarker {id: 5038} + <500: 1> * 0x7f99e1d79c50.negError {id: 5041} + <500: 1> * 0x7f99e1d79c50.posErrorMarker {id: 5040} + <500: 1> * 0x7f99e1d7a080.negEr43 } + <500: 1> * 0x7f99e1d7a080.posErrorMarker {id: 5042} + <500: 1> * 0x7f99e1d7aa60.negError {id: 5047} + <500: 1> * 0x7f99e1d7aa60.posErrorMarker {id: 5046} +negError {id: 5041} + <500: 1> * 0x7f99e1d79c50.posErrorMarker {id: 5040} + <500: 1> * 0x7f99e1d7a080.negError {id: 5043} + <500: 1> * 0x7f99e1d7a080.pos id: 50rorMarker } + <500: 1> * 0x7f99e1d7aa60.negError {id: 5047} + <500: 1> * 0x7f99e1d7aa60.posErrorMarker {id: 5046} + <500:negError {id: 5041} + <500: 1> * 0x7f99e1d79c50.posErrorMarker {id: 5040} + <500: 1> * 0x7f99e1d7a080.negError {id: 5043} + <500: 1> * 0x7f99e1d7a080.pos idrrorMarker } + <500: 1> * 0x7f99e1d7aa60.negError {id: 5047} + <500: 1> * 0x7f99e1d7aa60.posErrorMarker {id: 5046} + <500:-7.45058e-08 > * 0x7f99e1f7ae60.negError {id: 3600}}

I would like to better understand this data as an aid for debugging my problem.

Is there a document or publication that I can get that explains the format and meaning of this data?

Like, for example, what is something like <500: 1,250: -1>?

What is negError?

And, most importantly, is it possible to bind an element like {id: 3600} to it to a specific control that is being expanded by the auto market for me?

I am particularly interested in the latter questions because I read here that very small numbers when seen on these dumps can indicate a failure due to the accumulated loss of floating point precision in the auto-layout mechanism.

You will notice that I have this number on the very last line of my output. So, if I can associate {id: 3600} with one of my controls, I hope that brings me closer to having the problem.

+3


source to share





All Articles