草庐IT

c - GDB 和核心转储问题

认识我的$uname-aLinuxhostmachine4.1.2-2-ARCH#1SMPPREEMPTWedJul1508:30:32UTC2015x86_64GNU/Linux我正在尝试学习如何使用GDB调试C程序。我认为,如果我可以使用GDB找出导致段错误的错误,那将特别出色。我有一个小程序,作为K&R练习1-13的解决方案而编写,给定一个特定大小的输入字符串,它将生成一个段错误:$~/learning_c/KR_exercises/chapter_1/1.13.x`--我提供了一个来自标准输入的字符串,并且...--Segmentationfault(coredumped)根据

c++ - 使用 GDB 调试核心转储时知道谁是继承者

我的进程崩溃了,我有一个核心转储。我看到进程在运行类似于以下代码时崩溃了:classfather{public:voidvirtualrunVirtualFunc()=0;voidfunc(){runVirtualFunc();//...crashhere...THISISTHEPLACEINEEDTOKNOWWHOISTHEINHERITOR(soIcouldanalyzewhich"runVirtualFunc"ran).}virtual~father(){}};classson1:publicfather{public:voidvirtualrunVirtualFunc(){/*

c++ - 使用 GDB 调试核心转储时知道谁是继承者

我的进程崩溃了,我有一个核心转储。我看到进程在运行类似于以下代码时崩溃了:classfather{public:voidvirtualrunVirtualFunc()=0;voidfunc(){runVirtualFunc();//...crashhere...THISISTHEPLACEINEEDTOKNOWWHOISTHEINHERITOR(soIcouldanalyzewhich"runVirtualFunc"ran).}virtual~father(){}};classson1:publicfather{public:voidvirtualrunVirtualFunc(){/*

linux - 使用 gdb/gdbserver 远程调试共享库

我的问题是关于使用gdb/gdbserver在嵌入式arm处理器上远程调试应用程序。我可以调试应用程序本身,但应用程序动态链接到实现内部通信协议(protocol)的共享库。我希望能够在共享库函数中设置断点,因此尝试找出一些设备发现问题。我已经确定库是用调试符号编译的,并由主机端的gdb加载,我可以列出库中的函数,甚至可以设置断点,但是一旦我尝试运行应用程序,我就会得到一个错误消息的效果:无法插入断点X。访问内存地址[Hex地址]时出错:输入/输出错误。其中X是gdb中的断点编号,[Hexaddress]是一个非常小的有效地址。我在目标和主机上都使用了新库,但是通过nfs挂载在目标上通

linux - 使用 gdb/gdbserver 远程调试共享库

我的问题是关于使用gdb/gdbserver在嵌入式arm处理器上远程调试应用程序。我可以调试应用程序本身,但应用程序动态链接到实现内部通信协议(protocol)的共享库。我希望能够在共享库函数中设置断点,因此尝试找出一些设备发现问题。我已经确定库是用调试符号编译的,并由主机端的gdb加载,我可以列出库中的函数,甚至可以设置断点,但是一旦我尝试运行应用程序,我就会得到一个错误消息的效果:无法插入断点X。访问内存地址[Hex地址]时出错:输入/输出错误。其中X是gdb中的断点编号,[Hexaddress]是一个非常小的有效地址。我在目标和主机上都使用了新库,但是通过nfs挂载在目标上通

如果变量属于堆或堆栈,我可以通过 GDB 找到吗?

我的断点指向一个变量。(指向某处。我可以弄清楚某处是堆还是堆栈?)有什么方法可以找到堆栈的开始和结束位置?有什么办法可以找到堆的开始和结束位置? 最佳答案 使用infoprocmappings获取关于内存布局的/proc信息。 关于如果变量属于堆或堆栈,我可以通过GDB找到吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5247037/

如果变量属于堆或堆栈,我可以通过 GDB 找到吗?

我的断点指向一个变量。(指向某处。我可以弄清楚某处是堆还是堆栈?)有什么方法可以找到堆栈的开始和结束位置?有什么办法可以找到堆的开始和结束位置? 最佳答案 使用infoprocmappings获取关于内存布局的/proc信息。 关于如果变量属于堆或堆栈,我可以通过GDB找到吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5247037/

android - LLVM 在 Android NDK 工具链中有什么用?

LLVM在AndroidNDK工具链中有什么用?小回顾:我在Ubuntu上使用Gradlew构建我的原生项目,目标是arm和x86_64架构。似乎LLVM被用来调用arm-linux-androideabi-4.9和x86_64的C/C++编译器(?)以下内容摘自armeabi-v7a/ndkBuild_build_output.log:/home/mypc/Android/android-ndk-r17c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++-MMD-MP-MF/home/mypc/git/android-project-

android - LLVM 在 Android NDK 工具链中有什么用?

LLVM在AndroidNDK工具链中有什么用?小回顾:我在Ubuntu上使用Gradlew构建我的原生项目,目标是arm和x86_64架构。似乎LLVM被用来调用arm-linux-androideabi-4.9和x86_64的C/C++编译器(?)以下内容摘自armeabi-v7a/ndkBuild_build_output.log:/home/mypc/Android/android-ndk-r17c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++-MMD-MP-MF/home/mypc/git/android-project-

android - 直接从 Delphi 调用 Android NDK 函数的困难

可以通过JNIandNDK从Delphi调用AndroidC函数.要实现这一点需要大量工作,建议直接调用NDK函数。为此,我创建了一个小示例文件来按照我在Delphi源代码中找到的行声明一个外部C函数。在\source\rtl\android中更具体.我创建了一个非常小的测试程序来测试直接从Delphi调用C函数的功能。您将在下面找到所有源代码,这是我目前正在测试的。unitDLL_external;interfaceconstMIDI_Lib='/usr/lib/libmiditest.so';test_fun='test_1';functiontest_1(n:Integer):I