$cat /etc/*releaseMontaVista linux 6,(.dev-snapshot-20130726)
当我尝试在这个NAS上运行我自己的应用程序时,它将被“杀死”
没有任何关于dmesg或/ var / log / messages的通知
$cat /proc/cpuinfoProcessor : ARMv6-compatible processor rev 4 (v6l)BogoMIPS : 279.34Features : swp half thumb fastmult vfp edsp javacpu implementer : 0x41cpu architecture: 7cpu variant : 0x0cpu part : 0xb02cpu revision : 4HarDWare : Cavium Networks CNS3420 ValIDation BoardRevision : 0000Serial : 0000000000000000
我的工具链是
Sourcery_CodeBench_lite_for_ARM_GNU_linux/arm-none-linux-gnueabi
我的编译开关是
-march=armv6k -mcpu=mpcore -mfloat-abi=softfp -mfpu=vfp
如何找出杀死我的应用程序的进程,或者我必须更改的设置?
PS:我创建了一个简单的HelloWorld应用程序,它也无法运行!
$ldd Hello$ not a dynamic executablereadelf -a Hello=> http://pastebin.com/kT9FvkjEreadelf -a zip=> http://pastebin.com/3V6kqA9b
更新1
我用硬浮动编写了一个新的二进制文件
Readelf output http://pastebin.com/a87bKksY
但没有成功;(
我想这实际上是一个“锁定”主题,它阻止我的应用程序执行.我如何找出杀死我的应用程序?
或者我该如何禁用这种功能?
-march=armv6k -Wl,-z,max-page-size=0x10000,common-page-size=0x10000,-Ttext-segment=0x10000
另见this link regarding the toolchain.
您可以针对其中一个内置二进制文件(例如/usr/bin/nano)运行readelf -a,以在程序头中的节标题和页面大小/对齐方式中查看正确的文本段偏移量.上面的编译器标志使自编译的程序与内置二进制文件的结构相匹配,并且已经过测试才能工作.似乎Seagate Central NAS使用的页面大小/偏移量为0x10000,而ARM gcc的默认值为0x8000.
编辑:我看到你已经运行了readelf.你的pastebin显示
HelloWorld:[ 1] .interp PROGBITS 00008134 000134 000013 00 A 0 0 1 zip:[ 1] .interp PROGBITS 00010134 000134 000013 00 A 0 0 1
值10134-134 = 10000(十六进制)生成正确的文本段链接器选项.进一步向下(LOAD …)是对齐说明符,HelloWorld为0x8000,内置zip为0x10000.根据我的经验,软浮动并没有造成问题.
总结以上是内存溢出为你收集整理的linux应用程序被杀死全部内容,希望文章能够帮你解决linux应用程序被杀死所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)