Hi, D language provides user with the flexibility to ask arbitrary questions. But does D language in any way affect tracing capabilities i.e. the boundary between what can be traced and what can''t be. Suppose there is no D Language but every provider in DTrace provides you with some information, e.g. ''syscall'' provider gives the arguments to the system call and the process that called this system call. Similarly other providers provide certain information. The user is not allowed to ask arbitratry questions but he can process the above information in any way he wants later on. Does the above formulation in any way limit the tracing capabilities? This message posted from opensolaris.org
>Hi, > D language provides user with the flexibility to ask arbitrary questions. But does D language in any way affect tracing capabilities i.e. the boundary between what can be traced and what can''t b e.> >Suppose there is no D Language but every provider in DTrace provides you with some information, e.g. ''syscall'' provider gives the arguments to the system call and the process that called this syste m call. Similarly other providers provide certain information. The user is not allowed to ask arbit ratry questions but he can process the above information in any way he wants later on.> >Does the above formulation in any way limit the tracing capabilities?Yes, because you threw away the ability to aggregate and reduce data at the source; this is essential as the amounts of data which can be generated are staggering; without reduction the data is too unwieldy to be saved for later processing. Casper
>Ok, this is a good point. >But if the data can be saved, are there certain queries that can not be >answered (in principal) if D language is not there?Yes; the D language allows for complete inspection of the context during a probe (e.g., dereferencing fields of structures etc). When you are looking at the same data it a later moment, those pointers are no longer guaranteed to be valid. Casper
>> >Ok, this is a good point. >> >But if the data can be saved, are there certain queries that can not be >> >answered (in principal) if D language is not there? >> >> >> Yes; the D language allows for complete inspection of the context >> during a probe (e.g., dereferencing fields of structures etc). >> >> When you are looking at the same data it a later moment, those pointers >> are no longer guaranteed to be valid. > >The problem of pointer dereferencig can be solved by actually providing the >data in place of just pointers to the data. >Can you please point out some other scenario for failure?You don''t understand the full implication of the statement. "Providing the data in place of just the pointers to the data" requires a near complete memory image of the system at the time of the use of the pointer. You will need to save *all* data reachable from *all* pointers visible; that includes global variables. That''s probably around 8 orders of magnitude more data for each probe point. (several 100MB vs several B) Casper