技术分享
文章平均质量分 84
paky_du
做码农,认真生活。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux中如何获得进程的运行时堆栈
gdb, coredump,进程运行时信息。原创 2022-11-27 20:53:16 · 2897 阅读 · 0 评论 -
GDB+GDBService 嵌入式调式
使用buildroot编译对应的gdb for x86,gdbservice for arm: 确保各自平台和cpu的位数和程序的位数匹配记得设置 host gdb这边要调试的程序的依赖库,如:pakydu@SRVECT:~/works/E3_ok/source/utils/OneDay$ /opt/arm64_tool/bin/aarch64-buildroot-linux-gnu-gdb OneDayGNU gdb (GDB) 8.2.1Copyright (C) 2018 Free Sof原创 2022-11-27 19:52:07 · 597 阅读 · 0 评论 -
TCP链接异常: SYN_RECV
tcp状态之SYN_RECV原创 2022-11-20 19:50:37 · 4133 阅读 · 0 评论 -
本地库覆盖glibc的API
如何替换glibc里的API.原创 2022-11-20 19:03:59 · 763 阅读 · 0 评论 -
一个char类型引发的死循环问题
最近我们的嵌入式项目上出现了一个应用程序没有机会给watchdog汇报,导致watchdog跳起来重启系统的问题。这个也就是我们常说的上层应用程序异常没法及时喂狗,导致狗发飙了。因为我们的系统业务比较复杂,很难定位到底哪个代码出问题了。初步根据经验和现象,个人认为应该是代码进入了某个死循环了。但是要找到这个代码就比较困难了,因为这个问题只发生在客户现场,而且我们很难使用过多的debug手段。所以第一个问题就是要想办法找到这个死循环点: 用过脚本监控watchdog多久没有收到...原创 2021-02-22 17:41:36 · 472 阅读 · 0 评论 -
Samba TDB 数据库 在嵌入式中的使用
Samba stores its data in TDB files. TDB stands for "Trivial database"其他相关的数据库的介绍可以参考这个链接:https://www.jianshu.com/p/8bb2c9d8d90c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation...原创 2021-01-28 18:07:29 · 2455 阅读 · 0 评论 -
git 基本操作
Git 与 SVN 区别GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。Git 与 SVN 区别点: 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。转载 2020-12-25 20:12:36 · 449 阅读 · 0 评论 -
NFS 挂载失败的原因
今天在架上NFS时,也碰到了相关的错误:mount.nfs: access denied by server while mounting xxxx从网络上看到的NFS挂载失败的出现此类错误原因大致为:权限问题 防火墙机制问题 共享配置文件问题在NFS service上抓包的数据看,网络应该时通的,可能还是配置的问题。把所有权限都去掉用nobody,或者时共项目改为777的权限。按照网上说的种种解决方案都没有解决我碰到的问题。最后在NFS service的servicelog里面终于看.原创 2020-12-23 16:00:43 · 4414 阅读 · 0 评论 -
sem_timedwait 和修改系统时间
#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <semaphore.h>#include <sys/time.h>#include <string>#include <fstream>//# define CLOCK_REALTIME 0/* Monoto...原创 2020-12-23 08:32:10 · 8550 阅读 · 0 评论 -
Linux 程序栈空间的大小
在Linux系统中程序的内存空间一般被划分成两个区域: 栈空间和堆空间(其他空间区域本文不做讨论): 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在...原创 2019-10-15 13:41:50 · 3605 阅读 · 0 评论 -
Linux 的经典命令:
1.mail:mail username 2.cmp: cmp file1 file2 3.diff: diff file1 file2 4.wc: wc file(统计file中的行数,单词数,字符数) 5.让命令脱离shell继续运行:nohup cmd & 6.让程序获得跟多的cpu时间:nice cmd & 7.让程序在某个时间自定运行:原创 2008-11-02 18:24:00 · 641 阅读 · 0 评论 -
JavaScrip 初学笔记
1.JavaScrip 通常出现在标签及标签间。example: blah blah blah alert("better, stronger, faster");// end the hiding comment -->2.当首次用一变量时,应以“var”申明.尽管以var 作为变量申明严格说并不必要,但这是一个好习惯。document.w原创 2008-11-16 23:32:00 · 1890 阅读 · 0 评论 -
使用eclips开发java时的闪退问题
eclips在ubuntu上的使用闪退问题。原创 2014-06-05 00:06:59 · 4253 阅读 · 0 评论 -
自动化测试框架FitNesse -- 搭建CsLim
之前看了Bob大叔的《代码整洁之道》,里面有提到他的开源项目FitNesse,一个自动化测试的框架。可以进行单元测试、集成测试和系统测试等。对于一个开发人员来说,这个东西还是很强大的,因为你是要有编程的经验和能力才能挖掘出更大的宝藏。 下图是FitNesse的模块框架图,我们只要理解了SLIM Runners的功能,就可以知道各种Slim的的意义了。缺省的情况下Java就相当于是Slim。原创 2017-06-06 08:19:33 · 1336 阅读 · 0 评论 -
写代码不能太偷懒 -- 关于c/c++运算符优先级
使用了c编程也有十几个年头的,今天居然因为一个运算符优先级的问题调试程序用了1个多小时。int TransSock(int nReadSock, int nWriteSock){char buf[1500] = {0};int nread = sizeof(buf);if (nread = read(nReadSock, buf,nread) keyp原创 2018-01-07 15:48:44 · 486 阅读 · 0 评论 -
通过阿里云实现工业控制器在互联网中的访问
很多时候我们无法访问某个控制节点的原因是那个控制节点没有公网的IP地址,特别是对目前公网IP地址耗尽的现实下。 在互联网中有公司已经开发出了解决这种问题的产品,如花生壳公司的花生棒产品,这个产品有一个功能就是内网穿透。它的大概原理应该如下图所示:Oraybox很像一个“间谍”,我们在互联网中的所有请求都是通过这个“间谍”代理,把请求发给控制节点,把节点在返回给我们。对于它...原创 2020-12-23 08:45:53 · 474 阅读 · 0 评论 -
python 3.x 使用mySQL数据库
我们如果是用python 3.x的ORM方式去连接mySQL,我们一般情况会用如下的格式:dialect+driver://username:passswd@host:port/databas <----->mysql+mysqldb://username:passwd@hostname:port/datdbasename.(postgresql数据库: postgresql...原创 2019-06-01 11:38:02 · 325 阅读 · 0 评论
分享