This is the major part in gdb side of this patch set. This patch is to make use of `inserted' field in bp_location to track whether this tracepoint location has been downloaded. This bit is quite similar to what we are doing to breakpoint. The difference on breakpoint locations and tracepoint locations is about `duplicate' field in bp_location, because on the same address, there can be multiple instances of bp_location which have different trace actions, so we can't treat one duplicates the other. In current implementation, we treat tracepoint location never duplicates with other tracepoint locations and locations of other breakpoint type. -- Yao (齐尧)