我目前正在实现一个小调试框架的最后一个任务,即HW Breakpoints.到目前为止我提到了这篇文章:http://www.codeproject.com/KB/debug/hardwarebreakpoint.aspx和一本关于编写调试器的书.
到目前为止,我有两个函数用于设置HW断点:
void debuglib::breakpoints::hw_bp() {
HANDLE helper = 0;
CONTEXT co;
CURRENTCONTEXT(co);
helper = ::CreateThread(0,0,threadfunc,reinterpret_cast<void*>(co.Eip),0,0);
DWORD status = ::WaitForSingleObject(helper,INFINITE);
if (status != WAIT_OBJECT_0) {
::MessageBoxA(0, "Helper thread didn't exit cleanly", "HWBreakpoint", MB_OK);
}
::CloseHandle(helper);
}
Run Code Online (Sandbox Code Playgroud)
static DWORD WINAPI debuglib::breakpoints::threadfunc(void* param) {
DWORD suspendcnt = ::SuspendThread(debuglib::process::thread());
if(suspendcnt) {
return 0;
}
CONTEXT co;
::ZeroMemory(&co,sizeof(co));
co.ContextFlags = CONTEXT_DEBUG_REGISTERS;
BOOL ok = ::GetThreadContext(debuglib::process::thread(),&co);
if(!ok) {
return 0;
}
DWORD freeDr = 0;
DWORD condition = debuglib::breakpoints::TRIGGER::CODE;
DWORD length …Run Code Online (Sandbox Code Playgroud) FireBug中有一个错误:我不小心点击了行号所在的位置,它设置了一个断点.所以我再次点击删除它.现在它每次都在那里打破.我已经尝试设置/删除断点,但它不起作用.我甚至尝试点击暂停图标,我在其他地方看到了它,但它没有做任何事情 - 它甚至没有改变.我甚至尝试将它设置为一个始终为假的条件断点,因此它永远不会触发.没有雪茄.我甚至尝试卸载FireBug并重新安装它!
(请注意我使用FireBug 1.7.3和FireFox 3.6.25,并且由于某种原因而无法升级.)
[我发布了一张图片,但直到我有10个代表才能发布!]
如何删除所有断点?我必须卸载/重新安装吗?
自升级到xCode 4以来,我的应用程序停在我认为不存在的断点处.当它断开时,没有断点显示,编辑说"线程:1停在断点17".在Breakpoint导航器中查看,在任何地方都没有断点17,并且它所停留的线路未在任何地方列出.
其他人看到这个?这可能是新的吗?
约翰
我无法在Silverlight Web应用程序的服务器端遇到断点.我知道代码执行,因为我可以打破异步回调与我期望的.这只是我的机器有这个问题.
我知道这似乎是一个常见的问题,但是我所看到的所有答案都没有帮助我,包括:
我正在使用Visual Studio 2010(.NET 4),Silverlight 4,并使用IIS(我认为6,不记得)来托管该站点.
我发现有趣的行为(可能有助于诊断):
任何建议将非常感谢!
更新:感谢所有的建议.我决定格式化C:\,而不是花更多的时间玩,因为我的机器无论如何都需要它.我仍然不确定问题是什么,但它现在正在运作.
在此之前我确实尝试过其他一些事情,例如删除.sou文件,并检查我运行的是同一版本的Silverlight,在本博文中提到,没有运气.希望这将成为将来有这个问题的人的清单.
在GDB中调试C++代码:我策略性地设置了15个断点,但我不希望它们中的任何一个在我遇到断点#2之前激活.GDB中是否有任何run-until-breakpoint- n命令?
我发现自己做了两件事之一:
删除所有其他断点,使#2全部存在,运行,重新添加所有断点; 要么
跑步并反复continue经过所有休息,直到我看到#2的第一次休息.
我希望这样的东西run-until 2会忽略除#2之外的所有其他断点,但不会删除它们.这存在吗?有没有其他人有更好的方法来解决这个问题?
有没有办法在Eclipse中的每一行都设置断点?
我问的原因是因为我正在分析用Java编写的代理程序,它等待并监听连接.我试图了解它是如何工作的,但我无法弄清楚连接到达时代码的起源.
无论代码从哪里开始,换句话说,每一行都有断点,我该如何触发断点?
我在源.js文件中有一个断点(通过源映射加载),当我在源选项卡中使用chrome dev工具指向它时,它没有被击中.有时候,如果我点击格式按钮{}但我的命中和未命中,我可以让它们被击中.
有任何想法吗?
"devDependencies": {
"autoprefixer-loader": "^3.1.0",
"babel-core": "^6.1.20",
"babel-loader": "^6.1.0",
"babel-preset-es2015": "^6.1.18",
"babel-preset-stage-1": "^6.3.13",
"css-loader": "^0.23.1",
"material-ui": "^0.14.0",
"style-loader": "^0.13.0",
"stylus-loader": "^1.5.1",
"tape": "^4.2.2",
"webpack": "^1.12.12",
"webpack-dev-server": "^1.12.1"
},
"dependencies": {
"babel-polyfill": "^6.1.19",
"moment": "^2.11.2",
"normalize.css": "^3.0.3"
}
Run Code Online (Sandbox Code Playgroud)
webapck:
module.exports = {
entry: [
'babel-polyfill',
'./app/app.js'
],
output: {
publicPath: '/',
filename: 'dist/main.js'
},
debug: true,
devtool: 'source-map',
module: {
loaders: [
{
test: /\.js$/,
include: path.join(__dirname, 'app'),
loader: 'babel',
query: {
presets: ['es2015']
}
},
{ test: /\.styl$/, …Run Code Online (Sandbox Code Playgroud) 我一直收到这个错误,说有.cs文件的副本,因此断点不会被击中.
我曾尝试清洗液,重建,删除的OBJ和bin文件夹的.pdb文件,关闭VS和重新启动,重启整机(它的Windows有时,最复杂的,无法解释的问题,拿不动这样的:\)
知道我还能尝试什么吗?这是VS2015上的一个.net项目
我无法在 VS 2022 v17.3.6 中调试 WASM 项目以取消绑定断点。断点在不运行时看起来很好,但在运行项目时变成一个空圆圈,里面有警告标志。消息是 \xe2\x80\x9c当前不会命中断点。未绑定断点\xe2\x80\x9d。可以调试同一解决方案中的其他项目。团队中的三名开发人员有此问题,其中一名没有。现在所有的 VS 都使用相同版本。我们尝试了稍旧版本的VS 2022(v17.3.4),它也有这个问题。
\n以下是我尝试使用其他帖子中的许多建议来解决问题的几种方法。
\n清理解决方案,重新启动机器,重新启动VS
\n将工具-选项-调试-符号中的调试设置更改为
\n检查了微软符号服务器
\n检查 NuGet.org 符号服务器
\n加载所有符号
\n已验证 launchsettings.json 的此设置: "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
\n\n已验证项目的调试属性 - Build-General-\xe2\x80\x9cDebug 符号,可跨平台移植\xe2\x80\x9d
\n添加了代码以延迟项目启动,直到所有内容都构建完成
\n\n删除解决方案的.vs文件夹,重新启动计算机,重新启动VS
\nbreakpoints ×10
c# ×3
c++ ×2
debugging ×2
.net ×1
blazor ×1
c ×1
command-line ×1
eclipse ×1
firebug ×1
firefox ×1
gdb ×1
iphone ×1
java ×1
javascript ×1
silverlight ×1
webassembly ×1
webpack ×1
winapi ×1
xcode ×1
xcode4 ×1