我尝试使用 IntelliJ IDEA 11.1 Ultimate 调试应用程序服务器 (WebLogic)。调试器配置以前工作过,我没有改变任何东西。
会发生什么:IntelliJ 告诉我
连接到目标VM,地址:'[snip]:9009',传输:'socket'
我可以添加和删除断点,并且它们标有复选标记,因此设置它们似乎有效。通过与我的应用程序的 Web 界面交互,我尝试点击我设置的断点。断点实际上似乎阻止了代码的执行,但 IntelliJ 调试器没有反应。在我断开调试器连接之前,我的应用程序的 Web 界面不会响应,但 IntelliJ 似乎根本没有注意到这种情况发生。我无法与调试器交互。我怎样才能弄清楚出了什么问题?IntelliJ 调试器本身是否有一些调试输出?这个问题有已知的解决方案吗?
我的情况:我目前正在尝试使用 Eclipse CDT 作为专有 IDE 的替代品。我有一个企业应用程序,它由一个可执行文件和许多(30 多个)共享库模块组成。该应用程序针对嵌入式非 x86 平台,具有兼容 POSIX 的操作系统(QNX 或 GNU/Linux,取决于所选的工具链)。因此,无法在开发人员的机器上进行调试。它必须远程完成。
我正在使用 Eclipse Luna/CDT 8.5 和远程系统资源管理器插件,并安装了 GDB/DSF 创建进程启动器。通过这些插件,Eclipse 可以远程启动程序并使用 gdbserver 对其进行调试。但只有主要的可执行文件可以配置为上传。
我想知道通过 Eclipse 为远程调试启动部署文件的合适方法是什么?
我目前的选择是:
有更好的解决方案吗?
linux remote-debugging eclipse-cdt shared-libraries gdbserver
由于以下原因,我无法调试远程应用程序:行中没有可执行代码
我正在运行 Intellij 的终极版,版本 14.0.3。我的应用程序在 tomcat 8 中运行,我正在使用 Maven 从命令行构建它。这个问题是我从社区版切换到终极版后出现的。
项目源是相同的,我能够连接到 tomcat 进行远程调试。唯一的问题是我所有的断点都失效了。
请就如何解决此问题提出建议。
干杯。
我遇到了在远程调试期间无法使用诊断工具的问题。如果我在本地机器上启动我的程序,一切都很好。
在确保我的域用户在目标机器上具有调试权限(在远程调试工具中配置)后,我将 Visual Studio 附加到远程机器上的运行进程。然后我切换到诊断窗口,只看到一条错误消息
在网上搜索后,我找到了一种获得详细输出的方法并得到了这个:
Debug --- Diagnostics Hub Components Loader --- Component 44d04ed9-f786-458c-93a9-7207a3cc52e1 (Microsoft.DiagnosticsHub.Components.LazyCollectorFactory) has been loaded.
Debug --- Diagnostics Hub Components Loader --- Component 28b3f966-03cc-4632-ae04-0861ef17555a (Microsoft.DiagnosticsHub.Components.LazyCollectorFactory) has been loaded.
Debug --- Diagnostics Hub Components Loader --- Component 113e964e-152f-45e7-b70e-1e5482802d0c (Microsoft.DiagnosticsHub.Diagnostics.OutputWindowLogger) has been loaded.
Debug --- Diagnostics Hub Components Loader --- Component 72089e7a-a3c8-4652-9817-f33c8149affc (Microsoft.DiagnosticsHub.Components.LazyCollectorFactory) has been loaded.
Debug --- Diagnostics Hub Components Loader --- Component 42d07b97-c049-403e-bd24-6c55fb096d1a (Microsoft.DiagnosticsHub.VisualStudio.Targets.ExecutableTargetProviderFactory) has been loaded.
Debug --- Diagnostics Hub Components Loader --- Component …Run Code Online (Sandbox Code Playgroud) 我有一个实验室系统(附有一个硬件),其中有一些 python 测试脚本。测试脚本向连接的硬件发送命令并接收响应。
我不想一直在实验室电脑上工作。目前,我使用 SSH 从我的本地机器到实验室计算机,并使用 shell 修改脚本、运行命令等。使用 nano 很麻烦,尤其是在调试时。我想在本地机器上使用 IDE (Pycharm) 来编辑和运行远程服务器上的脚本。Pycharm 具有使用远程 python 的远程解释器,但我也希望能够访问和修改脚本,就像终端的 SSH 一样。
我怎样才能做到这一点?
如果我开始一个正常的“gdb”会话,那么我可以直接在终端中访问STDIN和查看STDOUT:
$ gdb wc
GNU gdb (Gentoo 7.10.1 vanilla) 7.10.1
...
gdb> run
Starting program: /usr/bin/wc
asdf
1 1 5
[Inferior 1 (process 28131) exited normally]
gdb> quit
$
Run Code Online (Sandbox Code Playgroud)
我可以用 gdbserver 做同样的事情吗???
这是我尝试过的(gdbserver):
$ gdbserver /dev/ttyS0 wc
Process wc created; pid = 28156
Listening on port 2345
Run Code Online (Sandbox Code Playgroud)
和客户:
$ gdb
GNU gdb (Gentoo 7.10.1 vanilla) 7.10.1
...
gdb> c
Continuing.
Program received signal SIGINT, Interrupt.
0x00007ffff7ddbc40 in _start () from target:/lib64/ld-linux-x86-64.so.2
gdb>
Run Code Online (Sandbox Code Playgroud)
但是,使用 gdbserver 时似乎STDIN …
我的设置如下: - 在 docker 中运行的 django 服务器,带有端口映射:8090:8090 - Eclipse with PyDev
我希望能够在 Pydev 上放置断点(单击一行,一步一步)
我发现了几篇文章,例如; http://www.pydev.org/manual_adv_remote_debugger.html
但它仍然无法正常工作。
1) 我应该将 manage.py 更新为“导入 pydev”吗?要添加哪些行,我是否必须在 docker 容器中复制 pydev 插件的 pysrc 才能进行模块导入?
2)是否需要端口转发?运行到 docker 中的 python 实例应该可以访问主机上的远程调试服务器吗?
3) 我找到了关于 pycharm 和使用 ssh 远程调试的文章?不能用 pydev 做类似的事情吗?
4)如何“链接”我的本地目录和docker“目录”?
[编辑]我找到了解决方案
将 eclipse/path_to\pydev\plugins\org.python.pydev\pysrc 目录复制到您的 docker 容器可以访问它的地方。
编辑 pysrc/pydevd_file_utils.py,并添加主机和 docker 容器之间的目录映射,如: PATHS_FROM_ECLIPSE_TO_PYTHON = [(r'C:/django',r'/.../lib/django'), (r'C:/ workspace/myapp',r'/var/www/myapp')] 如果您有多个包含 python 代码的路径,您可以设置多个元组
编辑 manage.py 并添加以下内容
sys.path.append('/my_path/to_pysrc_/under_docker/pysrc') import pydevd pydevd.settrace(host='172.17.42.1') #你主机的IP
在 Pydev 中,在首选项 > Pydev > 运行/调试 > 远程调试器端口:5678
在 Debug Perspective …
我尝试远程调试 Azure 应用程序,但是在尝试连接调试器(手动或使用云资源管理器自动)时,我收到错误消息:
无法连接到名为 xx 的 Microsoft Visual Studio 远程调试器。与远程端点的连接已终止。
在应用程序服务器的事件查看器中,我收到了事件:
Msvsmon 无法启动名为“127.0.0.1:50119”的服务器。发生以下错误:远程调试器的一个实例已经在这台计算机上运行,或者另一个进程已经绑定到指定的 TCP/IP 端口。查看 Msvsmon 的帮助以获取更多信息。08005E80
我已经做了什么:
那么我该如何调试我的 webapp 呢?
remote-debugging azure visual-studio-2015 azure-web-app-service
我正在尝试设置 IntelliJ 以连接到在 Docker 容器中运行的 Tomcat 实例。我希望能够使用远程调试并使用 JMX 进行远程部署。
我可以使用环境变量启用远程调试
JPDA_ADDRESS=8000
JPDA_TRANSPORT=dt_socket
Run Code Online (Sandbox Code Playgroud)
并且通过使用 启动 Tomcat catalina.sh jpda run,远程调试工作没有问题。
我也可以用
CATALINA_OPTS='-agentlib:jdwp=transport=dt_socket,address=8000,suspend=n,server=y'
Run Code Online (Sandbox Code Playgroud)
然后我不需要使用 catalina.sh jpda run
无论我做什么,我都无法让 JMX 工作。我确认我catalina-jmx-remote.jar在 /usr/local/tomcat/lib` 中。
我曾尝试设置CATALINA_OPTS与JAVA_OPTS以
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.rmi.port=1099
-Djava.rmi.server.hostname=192.168.99.100
-Dcom.sun.management.jmxremote.ssl=false
Run Code Online (Sandbox Code Playgroud)
我已经验证这192.168.99.100是我的 docker 机器的 IP。我曾尝试使用 VisualJM 和 IntelliJ 连接到 JMX,但它不起作用。我已验证该端口1099已打开并可从主机获得。
Tomcat 正在接收 JMX 参数
20-Apr-2016 23:50:14.019 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.rmi.port=1099 -Djava.rmi.server.hostname=192.168.99.100 -Dcom.sun.management.jmxremote.ssl=false
Run Code Online (Sandbox Code Playgroud)
为什么我不能让 JMX 工作?任何日志中都没有可用的信息,无论我尝试什么,这都不起作用。
编辑: …
我正在使用 VS2015 更新 3 远程调试器和 VS2015 专业更新 3。我可以调试得很好,但每次启动远程调试器时,我都必须设置权限(添加用户、设置权限等)。
我正在使用 Windows 10,并且调试目标正在运行 Windows 7。
有没有办法让远程调试器记住调试会话之间的权限设置?
remote-debugging ×10
docker ×2
java ×2
azure ×1
debugging ×1
diagnostics ×1
django ×1
eclipse-cdt ×1
gdb ×1
gdbserver ×1
intellij-14 ×1
jmx ×1
linux ×1
maven ×1
performance ×1
pycharm ×1
pydev ×1
python-2.7 ×1
tomcat ×1
tomcat8 ×1
weblogic ×1