Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tcf-dev] Quick expressions support in TCF

Hi Benoit,

 

I don’t want the agent to be concerned with presentation of data, choosing between decimal, hex and other formats, choosing an icon, choosing character attributes like font and color, implement “pretty printing” and so on. I don’t believe it will necessarily improve performance: when symbol resolution is done locally by the symbols server and client uses caches and command coalescing, such service can actually degrade performance, epically since local machine is usually much more powerful that the remove one. I don’t want Eclipse GUI to be changed to use a new service – at least for backward compatibility, if nothing else. I don’t want to provide maintenance and support for non-essential services like that, e.g. develop and maintain addition regression tests automation for that.

 

However, I understand that such service might be appealing for someone looking to make it easier to implement a simple client. If we can call this service optional, create a separate source directory for services like that, and don’t commit to support it, then I’m OK with it.

 

Regards,

Eugene

 

 

 

From: tcf-dev-bounces@xxxxxxxxxxx [mailto:tcf-dev-bounces@xxxxxxxxxxx] On Behalf Of Benoit Perrin
Sent: Monday, August 22, 2016 3:48 AM
To: tcf-dev@xxxxxxxxxxx
Subject: [tcf-dev] Quick expressions support in TCF

 

Hello TCF dev,

I would like to contribute a new service to the TCF agent. This service can be used by client instead of the Expressions service to get basic information about expressions with few TCF requests. So, in the context of a connection with high network latencies, a client can visualize expressions quicker.

The service returns less information than the Expressions service; instead, it returns high level data that a UI client can display directly without extra requests. For example, it returns the value of the _expression_ as a string and gives a quick access to the children of the _expression_ (e.g. pointer, array, structure for C language).

For example, for a C structure like:

test.integer = 1234;
test.string = "A string";
test.floating = 3.14;
test.array[0] = 'A';

Evaluating the expressions with this service, it returns the info:

 {"Error":null,"TypeName":"struct TEST","TypeKind":6,"Value":"0x00007FFF9CFB81A0","HasChildren":true,"ID":"WREXPR.10.FP0.P18456.18456.48.@M0.@S4%28.B708DE.57BACF34.1C.79*28.B708DE.57BACF34.1C.EA+2.0.0.0.P18456.1.7FFF9CFB81A0","Label":"test","Display":"test : 0x00007FFF9CFB81A0"}

The "Display" field is a proposition of a display of the _expression_ 'test' that the client can use directly.

Getting the children of the expressions, it returns a list of info:

 [{"Error":null,"SymbolName":"integer","TypeName":"int","TypeKind":2,"Value":"1234","ID":"WREXPR.10.FP0.P18456.18456.48.@M0.@S4%28.B708DE.57BACF34.1C.57*28.B708DE.57BACF34.1C.EA+2.0.0.0.P18456.1.7FFF9CFB81A0","Label":"integer","Display":"integer : 1234"},
{"Error":null,"SymbolName":"string","TypeName":"char *","TypeKind":4,"Value":"0x0000000000400634","HasChildren":true,"ID":"WREXPR.10.FP0.P18456.18456.48.@M0.@S4%28.B708DE.57BACF34.1C.6C*28.B708DE.57BACF34.1C.EA+2.0.0.0.P18456.1.400634","Label":"string","Display":"string : 0x0000000000400634 \"A string\""},
{"Error":null,"SymbolName":"floating","TypeName":"double","TypeKind":3,"Value":"3.140000000000000","ID":"WREXPR.10.FP0.P18456.18456.48.@M0.@S4%28.B708DE.57BACF34.1C.B6*28.B708DE.57BACF34.1C.EA+2.0.0.0.P18456.1.7FFF9CFB81B0","Label":"floating","Display":"floating : 3.140000000000000"},
{"Error":null,"SymbolName":"array","TypeName":"char [10]","TypeKind":5,"Value":"0x00007FFF9CFB81B8","HasChildren":true,"ID":"WREXPR.10.FP0.P18456.18456.48.@M0.@S4%28.B708DE.57BACF34.1C.BD*28.B708DE.57BACF34.1C.EA+2.0.0.0.P18456.1.7FFF9CFB81B8","Label":"array","Display":"array : 0x00007FFF9CFB81B8 \"A\\u0004@\""}] 

With only two requests to the agent, the client is able to display basic information about a frame variable.


Do you think there is an interest by this contribution to the core TCF?

Any comment/suggestion is welcome.

Benoit


-- 
Benoit Perrin, Senior Member of Technical Staff, Wind River
 


This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.


Back to the top