如果您在VisualStudio中的一行旁边放置断点,使用自定义工具构建项目,并运行已配置的VS调试器,调试器如何知道可执行文件中的哪一行属于源代码中的断点行?因为编译器可能在制作可执行文件之前优化代码.

推荐答案

因为编译器很可能在制作可执行文件之前优化代码.

不,这是调试版本和发布版本之间的巨大区别.

调试版本将包含许多关于程序的额外信息,而不是执行程序所需的信息.特别是,所有名称、类、函数和变量都在调试版本中.Debug构建将构建的程序与您编写的代码几乎一一对应.

您会发现调试优化程序与调试调试版本有很大的不同.

当您发现一个只在优化的发布版本中表现出来的错误时,您就遇到了一个难题,需要再来一壶咖啡.

Linux相关问答推荐

如何删除字符串中的`{{i:`and `}}`

在Groff mm中定义页眉不会更改第一页中的页眉

计算与文件第一列对应的第二列中的字符串出现次数

Docker 守护进程安装在 ubuntu jenkins docker 容器代理权限被拒绝

ShellScript,有更好的方法来查找具有特定名称和日期的文件吗?

从 MariaDB 连接到 Oracle 时出现错误消息libsqora.so.11.1:找不到文件

将(覆盖)文件移动到不同位置的同名文件夹中

awk 不打印所需的 df 输出

文件未在脚本中使用 cp 命令复制到 Docker 容器中

ENQCMD 指令的好处和微操作是什么?

每次来宾重新启动后 Vagrant 执行脚本或命令(vagrant up)

为什么 XGrabKey 会生成额外的聚焦和聚焦事件?

根据日期范围过滤日志(log)文件条目

Linux AMD64 中如何使用 fs/gs 寄存器?

将原始数据发送到 TCP 服务器的 Linux 工具

如何在字符串中查找子字符串(或如何 grep 变量)?

如何使用 Linux 命令找到我的 shell 版本?

具有所有内核的 Gzip

Ionic android 构建错误 - 找不到ANDROID_HOME环境变量

Linux cmd 在 jar 中搜索类文件,而不考虑 jar 路径