One or morebreakpoints cannot be set and have been disabled. Execution will stopat the beginning o...

本文介绍了Visual C++(VC)调试过程中遇到的两类常见问题:“不能调试”与“断点错误”,并提供了详细的解决方案。针对“不能调试”问题,文章推荐了重启计算机、重新配置项目文件以及重建项目的步骤;而“断点错误”则通常不需要特别处理,VC会自动进行调整。
       现象是用 debug中的 step info或者run to cursor合着设置断点会出现One or morebreakpoints cannot be set and have been disabled.   Execution will stopat the beginning of the program.解决方法,

1.在project->setting->c/c++-general->debug info->program databse for edit and continue ;

2.edit->breakpoints->removeall;

3.build->set active project configuration->*.exe win32 debug.

经过以上三步,ok!

另一篇:

一、两种调试方式:

1、Debug模式:

2、Release模式:
单击菜单[Project]->[Settings…],出现"Project Settings"对话框,选择“Release”状态;
将C/C++标签中的Category选择General,Optimizations选Disable (Debug),Debug info选Program Database;
在Link标签中选中Generate debug info复选框。

注:Release模式稍好点,因为某些情况程序只能在Release下运行,如“显示对话框的DLL”在Debug下显示出窗口后就死在那里。

二、调试中可能的错误:“不能调试”、“断点错误”。
1、“不能调试”:
“One or more breakpoints cannot be set and have been disabled. Execution will stop at the beginning of the program.”
2、“断点错误”:
"One or more breakpoints are not positioned on valid lines.These breakpoints have been moved to the next valid line."

注意:“不能调试”跟“断点错误”不是一回事,“断点错误”会禁用某些错误断点,但“不能调试”则会禁用所有断点。

三、解决方法
1、对于“断点错误”,VC会自动帮我们定位到一行,我们不用理会!
2、对于“不能调试”,解决步骤如下:
1)、重起电脑
2)、把工程拷贝到新目录,删除ncb, .opt,.plg文件。 注意是拷贝,不是剪切。
3)、再菜单栏(menu):Build->Rebuild All。

转载于:https://www.cnblogs.com/kangwang1988/archive/2011/03/31/2000593.html

### 启用核心转储(Core Dump)以解决“Failed to write core dump. Core dumps have been disabled”问题 在Linux或macOS环境下,当JVM崩溃时,如果系统提示“Failed to write core dump. Core dumps have been disabled”,这意味着核心转储功能被禁用。核心转储文件(core dump)对于调试崩溃问题非常重要,因为它包含了程序崩溃时的内存状态。以下是启用核心转储的具体步骤: #### 1. 检查当前核心转储限制 在终端中执行以下命令,查看当前的核心转储大小限制: ```bash ulimit -c ``` 如果输出为 `0`,则表示核心转储被禁用。需要将其设置为不限制大小: ```bash ulimit -c unlimited ``` #### 2. 配置系统核心转储路径(可选) 默认情况下,核心转储文件会生成在当前工作目录下。如果需要自定义生成路径,可以修改 `/proc/sys/kernel/core_pattern` 文件。例如,将核心转储文件生成到 `/var/core_dumps` 目录: ```bash sudo mkdir -p /var/core_dumps sudo chmod 777 /var/core_dumps echo "/var/core_dumps/core.%e.%p.%t" | sudo tee /proc/sys/kernel/core_pattern ``` 其中: - `%e` 表示进程名称 - `%p` 表示进程ID - `%t` 表示时间戳 #### 3. 持久化配置(适用于重启后) 上述 `ulimit` 命令仅在当前终端会话中生效。如果需要持久化配置,可以在 `/etc/security/limits.conf` 文件中添加以下内容: ```bash * soft core unlimited * hard core unlimited ``` 此外,还可以在 `/etc/profile.d/core_dump.sh` 中添加以下内容,以确保每次登录时自动应用配置: ```bash ulimit -c unlimited ``` #### 4. 验证核心转储是否启用 运行一个简单的Java程序并模拟崩溃,检查是否生成了核心转储文件。例如: ```bash java -version ``` 如果系统提示错误并生成核心转储文件,则表示配置成功。 #### 5. 分析核心转储文件 生成核心转储文件后,可以使用 `gdb` 或 `jhat` 工具进行分析。例如,使用 `gdb` 分析核心转储文件: ```bash gdb /path/to/java /path/to/core_dump_file ``` ### 注意事项 - 确保核心转储文件生成路径具有足够的磁盘空间和写权限。 - 在生产环境中,建议定期清理核心转储文件以避免占用过多磁盘空间。 - 如果使用的是JDK 9及以上版本,可以使用 `jcmd` 工具生成线程转储,辅助调试问题。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值