ravitheja marked 28 inline comments as done.
ravitheja added inline comments.


================
Comment at: docs/lldb-gdb-remote.txt:212
 //----------------------------------------------------------------------
+// QTrace:1:type:<type>;
+//
----------------
clayborg wrote:
> labath wrote:
> > ravitheja wrote:
> > > clayborg wrote:
> > > > Should we make all these new packets JSON based to start with? 
> > > > "jTrace"? If we have any need for JSON at all in this or the other new 
> > > > packets I would say lets just go with JSON packets. They are currently 
> > > > prefixed with "j". If we go this route we should specify the mandatory 
> > > > key/value pairs in the header doc. We should also allow a JSON 
> > > > dictionary from the trace config up at the SBTrace layer to make it 
> > > > into this packet? 
> > > I am fine prefixing the packets with "j", I did not understand what you 
> > > meant by the last sentence. At the moment I am waiting for Pavel or Tamas 
> > > to reply or anyone else and based on the complete feedback, I will upload 
> > > a new patch if needed.
> > I think Greg meant you should also change the packet format to take a json 
> > argument instead of key-value pairs (The packet should be JTrace if it 
> > modifies the state, right ?).
> > 
> > If there is a gdb equivalent which matches this functionality sufficiently 
> > closely, then I would prefer to stick to that. However, given that we 
> > already are attaching a json field to the packet, I think it would make 
> > sense to go json all the way.
> I think the entire packet should be:
> ```
> $jTrace:XXXX
> ```
> where XXXX is a JSON dictionary. Ravitheja had talked before about adding an 
> implementation specific JSON dictionary into the JSON that comes in to 
> configure the trace at the lldb::SB layer. I was just saying it would be nice 
> if this implementation specific JSON was sent down as part of this packet so 
> the GDB server can use it. Maybe we just send the entire thing that came in 
> at the SB layer? 
Yes thats what is currently being done, the JSON Dictionary obtained at SB 
layer is being passed down to the server through the remote packets.


================
Comment at: include/lldb/Host/common/NativeProcessProtocol.h:13
 
+#include "lldb/Core/TraceOptions.h"
 #include "lldb/Host/MainLoop.h"
----------------
labath wrote:
> You are missing the traceOptions file from this patch.
The traceOptions are already merged into lldb code, please refer to 
->https://reviews.llvm.org/D29581


================
Comment at: include/lldb/Host/common/NativeProcessProtocol.h:429-430
+  //------------------------------------------------------------------
+  virtual void GetTraceConfig(lldb::user_id_t uid, lldb::tid_t threadid,
+                              Error &error, TraceOptions &config) {
+    error.SetErrorString("Not implemented");
----------------
zturner wrote:
> `virtual Error GetTraceConfig(user_id_t uid, tid_ threadid, TraceOptions 
> &config)`
The threadid is already inside the TraceOptions, which needs to be set by the 
user, I will update the comments here.


================
Comment at: 
source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:1161
+  if (buffersize == std::numeric_limits<uint64_t>::max() ||
+      packet.GetBytesLeft() != 0) {
+
----------------
zturner wrote:
> Can you use `!packet.empty()`
I think its not possible to use empty function coz it checks the size of 
m_packet string inside and not the current m_index.


================
Comment at: 
source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:1391
+
+  if (error_encountered || packet.GetBytesLeft() != 0 ||
+      byte_count == std::numeric_limits<size_t>::max() ||
----------------
zturner wrote:
> `!packet.empty()`
Not possible I think


================
Comment at: source/Plugins/Process/gdb-remote/ProcessGDBRemote.h:178
 
+  virtual lldb::user_id_t StartTrace(lldb::TraceOptionsSP &options,
+                                     Error &error) override;
----------------
labath wrote:
> `const TraceOptions &options` ? Having a reference to a shared pointer seems 
> like a huge overkill here.
Yes u are right my mistake.


https://reviews.llvm.org/D32585



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to