是否有VS插件或独立应用程序形式的IL级调试器?
Visual Studio的调试器很棒,但它允许您在HLL代码级别或汇编语言上进行调试,您无法调试IL.在某些情况下,似乎有机会在IL级别进行调试.
特别是在调试代码中没有源代码的问题时可能会有所帮助.
如果在没有源的情况下调试IL实际上是有用的,那么这是有争议的,但无论如何.
我正在学习Erica Sadun的iPhone开发者手册中的iPhone编程.当我按照模拟器中第81页开始的温度转换示例中的步骤运行我创建的应用程序时,它会因未捕获的异常而终止.(有关我发布到iPhoneSDK Google 网上论坛的问题,请参阅http://groups.google.com/group/iphonesdk/browse_frm/thread/6f44a90fdb8da28a?hl=en.)
从main()调用UIApplicationMain()后抛出异常.如果我查看调试器中的堆栈跟踪,我看到的只是(当然)汇编.我怎样才能知道抛出了什么样的异常?
更新:
从调试器控制台了解异常的详细信息足以帮助我解决问题.(请参阅http://groups.google.com/group/iphonesdk/browse_frm/thread/6f44a90fdb8da28a?hl=en.)我确认我可以设置符号断点objc_exception_throw,但我没有查看是否有回溯来自会有所帮助.
我有一个C/C++程序,可能会在内存不足时挂起.我们通过同时运行多个副本来发现这一点.我想在不破坏开发机器性能的情况下调试程序.有没有办法限制可用的内存,以便新的或malloc将返回一个NULL指针,比如说,请求500K的内存?
我是IntelliJ(和Stackoverflow)的新手,也是Java的新手,在我的应用程序中,我使用的是jar中的代码,我在IntelliJ中添加了"外部库".我也有这些jar的源代码,但我宁愿不编译它们(它们庞大而复杂).现在在调试我的应用程序时,我想进入编译到这些jar中的库代码.如何设置IntelliJ来做到这一点?还有其他方法将整个jar库源代码附加到我的应用程序代码吗?
我正在调试一些使用Ado.net在SQL Server中调用存储过程(TSQL)的C#代码.我怎样才能进入存储过程?
(我想我已经看过微软工作人员演示的这个,但是不记得让它工作所需的101个"神奇"设置.)
我有一些Ruby和Java背景,我习惯于在错误日志中有确切的行数.
因此,如果编译代码中存在错误,我将在控制台输出中看到导致异常的行数.
就像在这个Ruby示例中一样:
my_ruby_code.rb:13:in `/': divided by 0 (ZeroDivisionError)
from my_ruby_code.rb:13
Run Code Online (Sandbox Code Playgroud)
它简单而快速 - 我只需转到第13行并修复错误.
相反,Erlang只是说:
** exception error: no match of right hand side value [xxxx]
in function my_module:my_fun/1
in call from my_module:other_fun/2
Run Code Online (Sandbox Code Playgroud)
没有行号可供查看.
如果我有两行像
X = Param1,
Y = Param2,
Run Code Online (Sandbox Code Playgroud)
在'my_fun'中,怎么能理解问题出在哪一行?
另外,我试图从Vim切换到Emacs + Elang模式,但到目前为止我唯一的奖励就是能够在Emacs(Ck`)中循环编译错误.
因此,编写代码和寻找简单的逻辑错误(如"右手边不匹配")的过程似乎有点麻烦.
我试图在代码中添加许多"io:format"行,但这是需要时间的额外工作.
我也尝试过使用distel,但只需要10步就可以打开调试器一次.
问题:
假设我打开了20个课程,我正在调试应用程序.
我通过它的断点来调试调试器.在某一行,我分心并开始滚动当前的源(类似于2000行).然后我开始涉猎其他19个源文件.
在涉水十分钟后,我希望返回当前的调试行.我甚至忘记了它是什么课.什么是最好的方法?这是我最糟糕的做法:
以上所有都不是好习惯.如果我没有错,当我使用Visual Studio编写C#时,我们有一个按钮让我们回到当前的调试行.
Eclipse中有这样的按钮吗?为什么不?如果没有,有人插件去做吗?
你有其他方便的做法吗?一个插件会很棒.
我目前正在用Python构建一个非常复杂的系统,当我调试时,我经常将简单的print语句放在几个脚本中.为了保持概述,我经常还要打印出print语句所在的文件名和行号.我当然可以手动执行,或者使用以下内容:
from inspect import currentframe, getframeinfo
print getframeinfo(currentframe()).filename + ':' + str(getframeinfo(currentframe()).lineno) + ' - ', 'what I actually want to print out here'
Run Code Online (Sandbox Code Playgroud)
它打印的东西像:
filenameX.py:273 - 我真的想在这里打印出来
为了使它更简单,我希望能够做到这样的事情:
print debuginfo(), 'what I actually want to print out here'
Run Code Online (Sandbox Code Playgroud)
所以我把它放到某个地方的函数中并试着这样做:
from debugutil import debuginfo
print debuginfo(), 'what I actually want to print out here'
print debuginfo(), 'and something else here'
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到:
debugutil.py:3 - what I actually want to print out here
debugutil.py:3 - and something else here
Run Code Online (Sandbox Code Playgroud)
它打印出我定义函数的文件名和行号,而不是我调用debuginfo()的行.这很明显,因为代码位于debugutil.py文件中.
所以我的问题实际上是:如何获取调用此debuginfo()函数的文件名和行号? …
我有使用Typescript编写的项目,我希望能够调试它(在Chrome Dev Tools或中Intellij).
起初我看到了Typescript的import功能不受支持.所以我试图用Webpack随webpack dev server但这完全失败了.即使我的应用程序正在运行(由于只有一个bundle.js包含所有代码的文件),它也无法将代码与给定的源映射匹配,这使调试变得不可能.
我停止使用webpack后,我尝试添加require.js作为依赖项来解决require is not defined我得到的错误.这工作但现在我再次陷入困境并得到这个:
未捕获的ReferenceError:未定义导出
我不知道为什么这不起作用.我想让我的应用程序工作(通过webpack或能够在转换后解析import语句)并且仍然能够使用typescript生成的source-maps调试代码.我怎样才能做到这一点?
我正在附加我的配置文件,以防有些东西丢失:
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"sourceMap": true
},
"include": [
"scripts/**/*"
],
"exclude": [
"node_modules"
]
}
Run Code Online (Sandbox Code Playgroud)
webpack.config.js:
module.exports = {
resolve: {
extensions: [/*'.ts', '.tsx', */'.js']
},
entry: './scripts/main.js',
output: {
path: '/',
filename: 'app.js'
},
module: {
rules: [
{ test: /\.js$/, loader: 'source-map-loader', enforce: 'pre' …Run Code Online (Sandbox Code Playgroud) 我的问题很简单.
我只想让VS Code的调试器与webpack-dev-server一起工作而不忽略我的断点.
现在,webpack-dev-server从内存中提供捆绑的文件,而如果我理解正确的话,VS Code调试器会在磁盘上搜索它们(...或不??)
因此,每当我设置断点时,我都会感到害怕
Breakpoint ignored because generated code not found (source map problem?)
现在,我可以找到的每个相关问题主要与打字稿有关,而不是webpack-dev-server从内存中提供的事实.我没有使用打字稿.似乎人们要么没有使用webpack-dev-server,要么我错过了一些明显的东西,后者用我的钱.
这是我的VS代码 launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:8080",
"webRoot": "${workspaceRoot}",
"sourceMaps": true,
"trace": true
}
]
}
Run Code Online (Sandbox Code Playgroud)
这些是我的相关内容 webpack.config.js
devtool: 'cheap-module-source-map',
output: {
path: path.join(__dirname, 'dist'),
filename: '[name].[chunkhash].js'
},
Run Code Online (Sandbox Code Playgroud)
我尝试了各种修改 …
debugging json webpack webpack-dev-server visual-studio-code