我已将 PyCharm 配置为定位 Docker 容器中的 Python 二进制文件,但收到此错误:
Couldn't refresh skeletons for remote interpreter
failed to run generator3.py for docker://app:latest//usr/local/python/bin/python, exit code 126, stderr: ----- /usr/local/python/bin/python: /usr/local/python/bin/python: cannot execute binary file -----
Run Code Online (Sandbox Code Playgroud)
在使用 Python 3.4.3 的虚拟机中运行 PyCharm 5.0.4 和 Docker 1.10.0。
保存这些设置会出现Non-zero exit code.上述错误。
我正在尝试运行该./mvnw spring-boot:run命令,以便可以对该进程进行远程调试。
我试过
./mvnw exec:exec
-Dexec.executable="java"
-Dexec.args="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
spring-boot:run
Run Code Online (Sandbox Code Playgroud)
我得到了日志 Listening for transport dt_socket at address: 5005
但是我收到错误并且 maven 进程退出
[INFO] --- exec-maven-plugin:1.5.0:exec (default-cli) @ sample-project ---
Listening for transport dt_socket at address: 5005
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-server to select …Run Code Online (Sandbox Code Playgroud) 我有一个基于opendjdk:8-slim已安装 Tomcat 9的 Docker 容器,我正在调试从我的 IDE (IntelliJ) 部署在那里的应用程序 - IDE 在 Docker 主机上运行。我使用以下配置运行Tomcat
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=49520 \
-Dcom.sun.management.jmxremote.rmi.port=49520 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.local.only=false \
-Djava.rmi.server.hostname=10.0.75.1 \
-agentlib:jdwp=transport=dt_socket,address=49540,suspend=n,server=y"
Run Code Online (Sandbox Code Playgroud)
一切正常 - 我可以将 IDE 附加到容器。以下命令也有效(从 docker 主机执行) - 它可以连接到容器中的进程(容器中的端口 49540 映射到主机上的端口 49540):
docker-host$ telnet localhost 49540
Run Code Online (Sandbox Code Playgroud)
现在我想升级到 Java 9。我将基本映像从 更改openjdk:8-slim为openjdk:9-slim,但无法从 docker 主机连接到调试器端口。同样来自 IDE,我得到了SocketTimeoutException: Connection reset. 但是,从容器内部,我可以通过telnet.
我从openjdk存储库和其他存储库中尝试了几个 Java 9 图像,例如adenix/java,但不幸的是结果相同。
我在 Spring Boot 中有一个简单的(dockerized)Web 应用程序。
该应用程序编译正确。容器构建良好,没有错误。该应用程序在 localhost:8080 上运行良好,这是一个简单的“Hello World”。
现在,我尝试使用远程调试将 Spring Tool Suite 调试器附加到容器化 JVM,但没有成功。
故障信息是
Failed to connect to remote VM com.sun.jdi.connect.spi.ClosedConnectionException
Run Code Online (Sandbox Code Playgroud)
这是我的 Dockerfile:
FROM openjdk:8-alpine
WORKDIR /
EXPOSE 8080 8000
COPY target /
Run Code Online (Sandbox Code Playgroud)
这是我的 docker-compose.yml
version: '3.7'
services:
web:
build: .
ports:
- "8080:8080"
- "8000:8000"
command: java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:8000 -jar gs-spring-boot-docker-0.1.0.jar
Run Code Online (Sandbox Code Playgroud)
在 Spring Tool Suite 中,我有以下用于远程调试的设置:
Remote Java Application
- Connection type: Standard (Socket attach)
- Host: localhost
- port: 8000
Run Code Online (Sandbox Code Playgroud)
我使用的是 Macbook Pro 和 OSX Mojave (10.14.6) …
我知道如果我使用Google Plugin for Eclipse,这项工作会更简单.
但是,在我的情况下,我大量改编Maven,因此插件不适合我.(事实上,它给了我整整一周的头痛).
相反,我依赖于我从http://code.google.com/webtoolkit/doc/latest/tutorial/appengine.html学到的蚂蚁脚本
该文件非常清楚; 我按照文章使用ant devmode成功调用了DevMode.但是,该文档没有告诉我有关调试GWT的信息(就像Eclipse的Google插件可以做的那样).
基本上,我想在暴露调试端口的ant任务中添加一些参数(类似于(本地主机:58807中的com.google.gwt.dev.DevMode)),以便我可以将我的eclipse连接到.
我怎样才能做到这一点?
我正在使用远程(k)gdb来调试模块中的问题,该模块在加载时会引起恐慌,例如何时init()被调用.
堆栈跟踪只显示do_one_initcall(mod->init)导致崩溃.为了获得在gdb中加载的符号文件,我需要获取模块文本部分的地址,并获得我需要加载模块.
因为insmod在busybox(1.16.1)中不支持-m所以我坚持grep modulename /proc/modules+添加偏移nm来计算地址.
所以我在这里面临一个鸡和蛋的问题 - 为了能够调试模块加载,我需要加载模块 - 但是为了加载模块,我需要调试问题. ..
所以我目前正在考虑两种选择 - 是否有办法获取地址信息:
所有这一切都在调用之前mod->init()- 所以我可以在那里放置一个断点,加载符号文件,点击c并看到它崩溃和燃烧......
我需要使用IntelliJ Idea 10.5(终极版)调试远程Java代码
当我创建新的调试配置时,主机和端口就不会出现在那里.
如何打开远程调试?
调试时出现异常
Failed to connect to remote VM. Connection refused.
Connection refused: connect.
Run Code Online (Sandbox Code Playgroud)
我已经在Windows系统中尝试过命令
netstat -n -a -p tcp
但是我的8787端口没有启动该端口的方法。
我将GRADLE_OPTS系统环境变量添加为:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
Run Code Online (Sandbox Code Playgroud)
我已经从InteliJ IDEA为这个套接字创建了远程调试器.我可以调试build.gradle文件,但我无法进入脚本例如无法看到变量值.