CVX transforms your problem, including perhaps taking the dual, before providing to the solver. You should pay attention to the optimal variable and objective values reported by CVX, which may differ from what is reported by the solver.

Given that the objective is the sum of traces of semidefinite matrices, the optimal objective value reported by CVX should be nonnegative (within tolerance of slightly negative diagonal elements). That doesn’t mean the primal or dual objectives (essentially equal at optimality) reported by the solver will be nonnegative.

You can’t see the variable values at every iteration.

You can’t really know what CV has turned your problem into, in a way which is likely intelligible to you. The closest you can get to that is:

cvx_solver_settings( 'dumpfile', <filename> )

is a setting supported by
all solvers. If set, it will save a .MAT file containing the exact
input arguments delivered to the solver. This file will be created
immediately before the solver is called, so you will be able to examine
their contents even if the solver fails with an error. This feature is
to be used primarily by solver developers.