当然现在已经有比较成熟的调试器了, 比如decoda
在没有调试器之前都是怎么调试的呢?
printf打印到控制台之类的输出窗口. 如果做了热更新的话可以边改边看
输入命令, 让控制台显示结果....对于C++来说控制台是个很不爽的东西, 因为每个指令都要写个解析函数....以Attach方式为例:
int port = (int)(56000 + (GetCurrentProcessId() % 1000));
char options[255];
sprintf_s...插件, 当然它只认"unity"开头的进程:
另外需要注意的是, 调试的DLL必须有mdb文件, 相当于pdb文件....MD默认是生成pdb文件的, 所以需要改成mdb的调试信息才可以.
之后就一切顺利了, 断点, 单步跟踪, 监视器什么的都很完美:
C#脚本实践(四): 反射与序列化