Professor Zhang's research is on automatic debugging, software reliability,computer security, and program profiling. In particular, he has designed efficient and effective dynamic slicing techniques which have a lot of applications in debugging runtime errors, intrusion detection, and preventing software piracy. He has designed architectural support for protecting sensitive data in symmetric shared memory processors. He has also conducted research on program tracing and profiling, which includes novel representations and creative compression techniques. Zhang is interested in program analysis, both dynamic and static, and their applications in software engineering and security related issues.