With rapid advancements in the field of embedded systems, hardware and software of smart products are merging with each other more cohesively than ever before. The result is having the software as an integral part of the system-on-chip family of silicon devices. Co-simulation and verification therefore become a necessity in meeting stringent deadlines for time-to-market. This paper focuses on some of the efficient techniques of debugging in such environments.