Eti*_*ard 6 c++ gdb mingw g++ reverse-engineering
我有一个在调试中编译的C++应用程序(使用MinGW和Qt),但我失去了一些重大更改,因为我的团队中有人忘记在源代码管理器中提交他的更改并用其他更改覆盖源代码.
当我在debug中运行程序时(在Qt Creator中)我可以在main中设置一个断点然后查看源代码.
有没有办法只使用调试二进制文件重建丢失的所有源文件?手动或自动.
谢谢!
Ter*_*fey 10
当我在debug中运行程序时(在Qt Creator中)我可以在main中设置一个断点然后查看源代码.
真?找出调试器从哪里获取源代码,然后从那里复制它.
您的调试器更有可能只是使用与原始文件名相同的名称/路径来获取系统上的文件(可能是更新的版本,或者是旧版本等),而事情就恰好排成一行.
您不能真正从已编译的二进制文件中重新生成原始源,因为从C++源到已编译的二进制文件的转换不是1对1的关系.有许多(无限......)不同的源文件将编译为相同的二进制文件.通过查看二进制文件原始源的样子,无法知道.
有些工具可以生成类似于C++源文件的东西,但很可能它看起来与原始源不同.