在我关于手动生成核心转储文件的问题之后,我决定深入研究并弄脏我的手.
我能够构建基本的核心转储结构,并将我的死程序的内存返回到一个大的LOAD部分的核心转储中.在GDB中调试时,我的变量又回来了,没问题.这里有一个棘手的部分,我如何让GDB检索程序崩溃时的位置信息.
我知道核心转储的注释部分包含这些信息(cpu寄存器等).这是objdump -h为"真正的"核心转储提供的内容:
core.28339: file format elf32-i386
Sections:
Idx Name Size VMA LMA File off Algn
0 note0 000001e8 00000000 00000000 000000f4 2**0
CONTENTS, READONLY
1 .reg/28339 00000044 00000000 00000000 00000150 2**2
CONTENTS
2 .reg 00000044 00000000 00000000 00000150 2**2
CONTENTS
3 .auxv 000000a0 00000000 00000000 0000023c 2**2
CONTENTS
4 load1a 00001000 08010000 00000000 00001000 2**12
CONTENTS, ALLOC, LOAD, READONLY, CODE
.. other load sections ...
Run Code Online (Sandbox Code Playgroud)
我想知道readelf那些.reg部分包含从某些结构映射的数据:
Notes at offset 0x000000f4 with length …Run Code Online (Sandbox Code Playgroud) 我需要为图像中的像素着色。我使用opencv和python。
我尝试img[x,y]=[255 255 255]给 a 上色,pixel(x,y)但行不通:(
这其中是否有什么错误呢?
你能建议任何方法吗?
提前致谢。
我正在寻找手动生成ELF核心转储文件.
我的程序有一个RAM转储,也可以检索寄存器信息等等.
有了这些数据,我想构建一个ELF核心转储文件,类似于Linux内核在程序崩溃时生成的文件,目标是使用专门为我的平台制作的GDB来分析这个核心转储.
我一直在寻找核心转储规格或详细格式,但没找到我想要的东西:
这必须最好用C语言完成,我想我可以使用libelf库来帮助我构建文件,但是我没有找到关于该文件放什么的相关信息,以及格式,所以任何线索,链接或建议很受欢迎.
注意:这不是关于提高异常并且为我完成内核的工作,我可以这样做,但我真的需要自己收集RAM并手动将数据注册到elf核心转储中.
谢谢 !
基本上,我希望通过迭代从lst in到set并将其打印回列表来执行此操作.我得到的问题是我不能遍历set.add(item).set.add()在循环外应用一个值时非常好,但我不能让它在循环中工作.
使用此功能,我可以删除重复项.
remove_duplicates(numbers):
lst = []
for i in numbers:
if i not in lst:
lst.append(i)
return lst
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够做到这样的事情.
这是我能走多远.
lst = { }
lsto = [1, 1, 1, 2, 3, 4, 1, 2, 5, 7, 5]
for item in lsto:
lst.add(item)
print(lst)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正在关注https://github.com/BVLC/caffe/wiki/Ubuntu-14.04-ec2-instance链接,以便在我的机器上安装caffe.但是当我写命令时,$ make我得到了这些错误
/usr/local/cuda/bin/nvcc -ccbin=g++ -Xcompiler -fPIC -DNDEBUG -O2 -I/usr/local/include/python2.7 -I/usr/local/lib/python2.7/dist-packages/numpy/core/include -I/usr/local/include -Ibuild/src -I./src -I./include -I/usr/local/cuda/include -gencode arch=compute_20,code=sm_20 -gencode arch=compute_20,code=sm_21 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -c src/caffe/util/math_functions.cu -o build/src/caffe/util/math_functions.cuo
Error 1:
src/caffe/util/math_functions.cu(140): error: calling a __host__ function("std::signbit<float> ") from a __global__ function("caffe::sgnbit_kernel<float> ") is not allowed
Error 2:
src/caffe/util/math_functions.cu(140): error: calling a __host__ function("std::signbit<double> ") from a __global__ function("caffe::sgnbit_kernel<double> ") is not allowed
2 errors detected in the compilation of "/tmp/tmpxft_00003368_00000000-12_math_functions.compute_35.cpp1.ii".
make: *** [build/src/caffe/util/math_functions.cuo] Error 2
Run Code Online (Sandbox Code Playgroud)
我是新手,并不能真正弄清楚缺少什么包