草庐IT

runtime-gdb

全部标签

gdb - 如何将 gdb 附加到在 docker 容器中运行的进程?

我在docker容器中有一个长时间运行的进程,我想将gdb附加到该进程以查看正在运行的线程并获取堆栈跟踪。我可以从主机附加到进程,但我无法解析任何符号,因为可执行文件位于文件系统中的不同位置(它位于docker安装的卷中)并且共享系统库都卡在docker文件系统镜像中在/var/lib/docker的某个地方。我能够生成一个核心文件并使用gdb通过指定可执行文件的主机路径来查看它,但是因为系统库都在错误的位置,并且在核心文件中加载到错误的位置,我没有从中得到任何信息。我有没有忽略的选项? 最佳答案 您可以通过lxc-attach附加

python - 如何更改 gdb 使用的 Python 解释器?

我使用的是ubuntu14.04,其中python3是默认系统包。我想用gdb调试Python2.7程序,但是我好像遇到了这个问题:当我在gdb中时,使用py命令会将我置于解释器中,因此我在解释器中运行了这些命令:首先我检查解释器版本:(gdb)py>importsys>print(sys.version)>end3.4.0(default,Apr112014,13:08:40)[GCC4.8.2]然后我检查正在使用的解释器可执行文件(gdb)py>importsys>print(sys.executable)>end/usr/bin/python(gdb)然后在bash中,我检查解释

python - 如何在 Python 中导入 'GDB'

我正在使用Python2.7和Python3.1.3。但在我的Python中,我无法“导入gdb”。这给了我一个错误:>>>importgdbTraceback(mostrecentcalllast):File"",line1,inImportError:Nomodulenamedgdb>>>这是什么原因?我该如何解决这个问题? 最佳答案 importgdb仅当您的Python代码在GDB进程中运行时才有效。它不应该在常规系统Python解释器中工作。说明GDB嵌入了Python解释器,因此它可以使用Python作为扩展语言。你不能

python - 内存转储格式为 gdb 中的 xxd

我正在尝试检查一个缓冲区,该缓冲区包含二进制格式的消息,但也包含字符串数据。例如,我正在使用这个C代码:intmain(void){charbuf[100]="\x01\x02\x03\x04StringData\xAA\xBB\xCC";return0;}我想获得buf中内容的十六进制转储,格式类似于xxd(我不在乎它是否完全匹配,什么我真正在寻找的是与可打印字符并排的十六进制转储)。在GDB中我可以使用类似的东西:(gdb)x/100bxbuf0x7fffffffdf00:0x010x020x030x040x530x740x720x690x7fffffffdf08:0x6e0x67

java - 带有 JAXB Random ClassCastException .. 的 Netbeans 无法转换为 com.sun.xml.bind.v2.runtime.reflect.Accessor

我已经从SOAP服务下载了Soap消息,并尝试通过返回下载的消息来模拟Soap服务。以下代码显示了我如何将Soap消息解码为所需的响应publicstaticDataClientTypeunmarshallFile(StringfileName)throwsException{XMLInputFactoryxif=XMLInputFactory.newFactory();XMLStreamReaderxsr=xif.createXMLStreamReader(ClientSampleSoapResponseData.class.getResourceAsStream(fileName)

java - 无法从 Java 进程(Runtime.getRuntime().exec() 或 ProcessBuilder)读取 InputStream

我正在尝试使用Java从外部启动一个进程,但无法从其InputStream中读取任何内容。如果我使用“ls”、“ps”或“kill”等命令启动进程,一切正常。我可以启动进程并获取有关进程的InputStream或ErrorStream的信息。如果我尝试使用“ftp”或“telnet”之类的命令,则InputStream和ErrorStream在尝试读取时都会阻止我的程序。任何时候都不会通过这些流传递任何信息。谁能解释这种行为?这些命令是不可能的,还是我的实现有问题?StringprocessName=_configuration.getProgramCommand().getComma

java - AWS java sdk 1.10.2 中不存在包 com.amazonaws.services.lambda.runtime

我正在尝试GettingStarted(AuthoringAWSLambdaCodeinJava)中的Java代码示例页面,但我卡住了com.amazonaws.services.lambda.runtimepacakge似乎丢失了这里是示例代码:packageexample;importcom.amazonaws.services.lambda.runtime.Context;//packagedoesnotexisterrorimportcom.amazonaws.services.lambda.runtime.LambdaLogger;//packagedoesnotexiste

聊一聊 GDB 调试程序时的几个实用命令

一:背景1.讲故事用惯了宇宙第一的VisualStudio再用其他的开发工具还是有一点不习惯,不习惯在于想用的命令或者面板找不到,总的来说还是各有千秋吧,今天我们来聊一下几个在调试中比较实用的命令:查看内存硬件断点虚拟内存布局二:命令解读1.查看内存相信大家都知道VisualStudio直接提供了Memory面板来观察内存布局,但VSCode没有,还需要自己手敲命令来实现,这就比较麻烦了,为了方便先上一段测试代码。#includeusingnamespacestd;intmain(){inta=10;intb=11;intc=12;}调试器配的是GDB,只能用它的x命令观察内存,类似WinDb

java - 从哪个 Linux 内核/libc 版本开始,Java Runtime.exec() 就内存而言是安全的?

在工作中,我们的目标平台之一是运行Linux(内核2.6.13,基于旧FedoraCore的自定义发行版)的资源受限的微型服务器。该应用程序是用Java(SunJDK1.6_04)编写的。LinuxOOMkiller配置为在内存使用量超过160MB时终止进程。即使在高负载期间,我们的应用程序也永远不会超过120MB,并且与其他一些Activity的native进程一起,我们保持在OOM限制内。然而,事实证明JavaRuntime.getRuntime().exec()方法,从Java执行外部进程的规范方法,具有particularlyunfortunateimplementationo

java - ProcessBuilder 在 Mac 上给出 "No such file or directory"而 Runtime().exec() 工作正常

我有一个在Playframework上运行的应用程序,它需要对一些视频文件进行编码。我用过Processpr=Runtime.getRuntime().exec(execCode)为此(它工作得很好),但由于我需要输出流和错误流,我正在尝试使用ProcessBuilder(也推荐使用)。但我无法让它工作(在MacBook上测试)。Runtime方法和ProcessBuilder有根本的区别吗?这是我的ProcessBuilder代码(完全相同的代码替换为Runtime.getRuntime().exec())StringexecCode="/opt/local/bin/ffmpeg-i