
SPDSI13、SPDSI14
价格:999.00
厦门莫格电气自动化有限公司销售ABBSPDSI13、SPDSI14欢迎来电咨询!SPDSI13、SPDSI14SPDSI13、SPDSI14您迈开询价的一小步,我还您成功的一大步。在Linux下为了调试应用程序可以选择GDB方式运行应用程序进行调试,这种方式也可以调试程序由于接收某些信号导致的异常退出。不过当不具备直接GDB调试环境的情况下,我们也可以使用CoreDumps功能来调试程序异常退出的问题CoreDumps(核心转储),是操作系统当应用程序进程接收到某些如“segmentationfault(段错误)”或者“illegalinstruction(***指令)”等信号而退出停止运行时,会将包含当时内存和寄存器分配以及进程状态等信息写成的一个文件,这个文件可以稍后使用gdb进行分析来判定程序异常退出的原因,更多信息请见’mancore’。本文所演示的平台来自于ToradexApalisTK1ARM嵌入式平台,这是一个基于nVidiaTgeraK1的ARM处理器,支持四核心Cortex-A15和192CUDA核心的GPU。2.准备a).ApalisTK1ARM核心版配合ApalisIxora载板,连接调试串口UART1到开发主机方便调试。b).ApalisTK1系统使用ToradexLinuxReleaseV2.7b1,并安装了nVidiaJetPackR21.5,具体的***和更新方法请参考这里。3).查看LinuxKernel配置由于ToradexARM模块产品LinuxBSP默认kernel是没有打开的,因此可以在TK1模块系统上面通过执行下面命令测试是否kernel已经支持CoreDumpsa).查看Linuxkernel配置参数------------------------------------zcat/proc/config.gz|grepCONFIG_ELF_COREzcat/proc/config.gz|grepCONFIG_COREDUMP------------------------------------c).ApalisTK1当前V2.7b1版本kernel版本为3.10.40,查看结果如下------------------------------------ubuntu@tegra-ubuntu:~$zcat/proc/config.gz|grepCONFIG_ELF_CORE#CONFIG_ELF_COREisnotsetubuntu@tegra-ubuntu:~$zcat/proc/config.gz|grepCONFIG_COREDUMPCONFIG_COREDUMP=y------------------------------------d).***kernel源代码修改配置并重新编译由上面结果可见,当前TK1kernel配置并未完整支持coredumps功能,需要***对应kernel源代码修改配置并重新编译./ApalisTK1V2.7b1kernel源代码***以及重新编译请见这里说明。./如下修改”.config”------------------------------------//标记为”y”->GeneralSetup->Configurestandardkernelfeatures(expertusers)->EnableELFcoredumps->userspacebinaryformats->Enablecoredumpsupport------------------------------------./重新编译uImage按照如下方法将其替换到ApalisTK1上面------------------------------------//mountApalisTK1boot分区ubuntu@tegra-ubuntu:~$sudomkdir/media/ubuntu/mmcblk0p1ubuntu@tegra-ubuntu:~$sudomount-tvfat/dev/mmcblk0p1/media/ubuntu/mmcblk0p1//备份uimageubuntu@tegra-ubuntu:~$cd/media/ubuntu/mmcblk0p1ubuntu@tegra-ubuntu:~$sudomvuimagek//***新的uimage到boot分区ubuntu@tegra-ubuntu:~$sudocp../uimage.//重启ubuntu@tegra-ubuntu:~$sudoreboot------------------------------------./重启后再次查看两个配置选项都为”y”配置完成状态了3).UserSpace打开coredumps功能并测试a).UserSpace打开coredumps功能------------------------------------//开启coredumps并设置***大文件大小,或者为无限大;默认为0,意味着未开启。ubuntu@tegra-ubuntu:~$ulimit-c1024(orunlimited)//查看状态ubuntu@tegra-ubuntu:~$ulimit-acorefilesize(blocks,-c)unlimited……------------------------------------b).默认情况下在当前目录下生成名为“core“的文件,每次运行会覆盖原来文件,可以通过下面配置更改生成文件的命名,路径以及格式./将生成文件命名为”core.pid”,pid为应用程序的进程号,目录还是当前目录------------------------------------ubuntu@tegra-ubuntu:~$sudosh-c"echo1>/proc/sys/kernel/core_uses_pid"------------------------------------./更进一步还可以通过设置下面来配置生成文件的目录和格式,如下设置生成文件目录为“/temp”,格式说明如下------------------------------------#%p–进程号#%u–进程用户id#%g–进程用户组id#%s–生成core文件时收到的信号#%t–生成core文件的时间戳(secondssince0:00h,1Jan1970)#%h–主机名#%e–程序文件名ubuntu@tegra-ubuntu:~$sudosh-c"echo"/tmp/core-%e-%s-%u-%g-%p-%t">/proc/sys/kernel/core_pattern"------------------------------------./另外,如果需要使用”suid”或者”gdui”权限运行程序,需要设置如下------------------------------------ubuntu@tegra-ubuntu:~$sudosh-c"echo2>/proc/sys/fs/suid_dumpable"------------------------------------140CHS11000140CPU53414A140CRA93100140NOE77101TYP14.630.33.0161785-BCMVT3-V86ES7315-2AH14-0AB06ES7321-1BH02-0AA06ES7322-1BH01-0AA06ES7331-7PF01-0AB06FC5403-0AA20-0AA06SN1118-0DG21-0AA01336F-MCB-SP1K6ES7315-2AG10-0AB01756-ENBT1C31129G03/1C31132G016***6671-5CL00-0AX0FELQ-51746-A101746-IV161746-OW161746-P21746-P41747-L551SE-600-241771-A1B1771-IVN1771-P6S1771-P71785-BCMA06B-6102-H211#520A06B-6130-H002A20B-2900-0310A20B-2901-0660A20B-2902-0290A20B-2902-0411C***T-01BB1ANT3FU20-10T1-F***57***1157***13140CPU43412A2711-T5A16L12711-T6C16L1TK-PRS021BNL2310XQFB000配套编码器30073504E351036643704E3805E4119A8321R2600DDSUB-3113UG4512-1AR20AGDR-71CFS300R12KE3/AGDR-71CIC694ALG223IC694ALG392IC694CHS392IC694MDL230IC694MDL240IC694MDL645IC694MDL740IC694PWR330IC695ALG600IC695ALG608IC695CHS012IC695CMM002IC695CPU310IC695ETM001IC695LRE001IC695MDL916IC695NKT001IC695PBM300IC695PSA040XPS-BCXPSBC11101785-BCM6NH9720-3AA00MPL-B320P-SK24AADSQC6513HAC025784-001506/00/20/003504E36643805E4119A5X00119G015X00121G011746-A13CI830EI803F8AC110.60-18AC122.60-18V1022.00-1140CPU43412A140NOE77100140CPS114206EP1334-2AA01E32R83032900701746-A101746-IV161746-OW161746-P21746-P41747-L55143AP-FA45C/PB-BA8AC110.60-18AC122.60-18V1022.00-18V1045.00-18V1090.00-1R3681PS-M06D12S5-NJ1L(S)MAGNUMVS50FG30-H208G1B140CPS11420140CPU67160A06B-0127-B675#7000-1IH80IQDP40IQDP806***3607-1JC20-0AX1KXA-80-10-201746-NI16IMFC-N31747-AIC1761-CBL-AM001761-NET-AIC1764-28BXB1764-LSP1769-ECR1769-IF41769-IQ161769-OB16P1769-OF2FR-A024-0.2K1756-0BI6I1756-CNB/E1756-DHRI01756-DNB1756-ENBT/A1756-IF81756-IM16I1756-L611756-PA75CP-9200SH/CPU6ES7412-2XG04-0AB0EE-04052-0421791-24A8P0926GHP0926GJ6ES7951-0AG00-0AA0IC200ALG430IC200MDL7506SC6508-4AA021746-NI81746-P41756-CNB/E1756DH+/RIO1756-DNB1756-ENBT/A1756-IM16I1756L611756-OB16IMVI56-MCMFPS-F5140CPU43412AA06B-6058-H006E5071-66571)