ICode9

精准搜索请尝试: 精确搜索
  • Remote 'g' packet reply is too long的解决2022-07-24 08:01:26

    wget http://ftp.gnu.org/gnu/gdb/gdb-7.8.tar.xz tar -xf gdb-7.8.tar.xz cd gdb-7.8/ ============================解决上述错误的附加步骤========================= vi gdb/remote.c // 把status 1处的代码替换为status 2 //status 1 if (buf_len > 2 * rsa->sizeof

  • linux 进程内核栈【转】2022-03-02 02:33:09

    转自:https://zhuanlan.zhihu.com/p/296750228 概念 在每一个进程的生命周期中,经常会通过系统调用(SYSCALL)陷入内核。在执行系统调用陷入内核之后,这些内核代码所使用的栈并不是原先用户空间中的栈,而是一个内核空间的栈,这个称作进程的“内核栈”。 每个task的栈分成用户栈和内核栈两

  • SV学习笔记—包package的使用2022-01-31 18:32:13

     1.为什么需要包?        当我们想对2个IP同时进行验证时,我们可能会发现他们的验证环境中的各个模块儿是相似的,只是里面的内容数据不同。这时为了提高工作效率,我们可能需要对他们同时跑仿真,这就需要引入package,使得同一模块儿被填入不同的内容从而进行不同IP的仿真。    

  • Java机试题*:字符串通配符(根据题目指定字符以及对应的通配要求处理,超时情况处理)2022-01-11 14:03:49

    描述 问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:*:匹配0个或以上的字符(注:能被*和?匹配的字符仅由英文字母和数字0到9组成,下同)?:匹配1个字符 注意:匹配时不区分大小写。 /** *

  • Linux内核调试方法总结之Call Trace2022-01-10 14:35:15

    内核态call trace 内核态有三种出错情况,分别是bug, oops和panic。 bug属于轻微错误,比如在spin_lock期间调用了sleep,导致潜在的死锁问题,等等。 oops代表某一用户进程出现错误,需要杀死用户进程。这时如果用户进程占用了某些信号锁,这些信号锁将永远不会得到释放,就会导致系统潜在的不

  • System-call 系统调用2021-12-07 22:35:20

    一、系统调用过程 1. 用户在进行系统调用时,通过传递一个系统调用编号,来告知内核,它所请求的系统调用,内核通过这个编号进而找到对应的处理系统调用的C函数。这个系统编号,在 x86 架构上,是通过 eax 寄存器传递的。 2. 系统调用的过程跟其他的异常处理流程一样,包含下面几个步骤:(1) 将当

  • 特殊字符常量2021-07-16 11:32:06

    package com.netauth.utils.common; /** * * * <p> * 特殊字符常量 * </p> * * <p> * 版权所有:神州融信信息技术有限公司(c) 2019 * </p> * @date 2021年3月3日 * @author wyh * */ public class CharConst { /** * 全角双引号 */ pu

  • 从SOD到OOD(整板资源管理,system manager,成员函数定义,整板初始化相关)2021-07-13 12:32:41

    1)整板硬件初始化相关。 SystemManager::SystemManager() : xcmos_(&cam_uart_, &sys_timer_), xmotor_(&mcu_uart_, this), xhost_(&host_uart_, this), xaf_(this), xaec_(this), xin_(SYS_IN_0_REGS_ADDR, 0x1000), xout_(SYS_OUT_0_REGS_ADDR, 0x1000), xba

  • 从SOD到OOD(axilite_in模块与axilite_out模块)2021-07-12 11:30:03

    AXILITE_IN模块与AXILITE_OUT模块,主要是从AXI总线上接收数据或者发送数据,然后在PL侧将REG数据映射到对应的PORT上去。 所以,我们封装这两个模块时,需要关联或者内嵌一个IOMEM资源,这里选择内嵌方式。 #include "io_mem.h" #define FPGA_CLARITY_VALUE_MASK GENMASK(31, 0) #d

  • 极简CenterNet(二)核心代码2021-04-29 22:33:08

      本节给出网络结构、损失函数、训练和验证部分等主要代码,并使用几种简单数据集进行了训练验证。 1,resnet.py   原论文中centernet的主网络部分分别使用了hourglass,DLA,resnet三种网络,其中resnet是最简单的,我们的极简代码当然先从resnet18结构入手。   代码见https://gi

  • 34.Linux驱动调试-根据系统时钟定位出错位置2021-04-16 16:51:57

      当内核或驱动出现僵死bug,导致系统无法正常运行,怎么找到是哪个函数的位置导致的?  答,通过内核的系统时钟,因为它是由定时器中断产生的,每隔一定时间便会触发一次,所以当CPU一直在某个进程中时,我们便在中断函数中打印该进程的信息1.先来回忆下在之前的内核中断运行过程,当内

  • 慢慢欣赏linux 系统调用2021-02-27 22:57:17

    ENTRY(entry_SYSCALL_64) movq %rsp, PER_CPU_VAR(rsp_scratch) // 保存用户堆栈指针 movq PER_CPU_VAR(cpu_current_top_of_stack), %rsp // 获取tss段作为内核栈 =># define cpu_current_top_of_stack (cpu_tss_rw + TSS_sp1) /* 讲用户寄存器压到tss段 */ /* Constru

  • Linux之系统调用2021-01-03 15:31:47

    文章目录 glibc对系统调用的封装32位系统调用过程64位调用过程系统调用表总结 glibc对系统调用的封装 Linux提供了glibc这个中介,它更熟悉系统调用的细节,并且可以封装成更加友好的接口。 通过最常用的系统调用open为例,看看系统调用是如何实现的。 用户态进程里调用open函

  • Linux内核初始化2021-01-03 12:01:06

    内核的启动从入口函数start_kernel()(在init/main.c文件中,start_kernel相当于内核的main函数)开始,打开这个函数,里面各种初始化函数 初始化公司职能部分 项目管理部门 操作系统里首先有个创始进程,通过 set_task_stack_end_magic(&init_task) init_task 定义如下 struct task

  • Kprobe的使用方法2020-12-18 16:36:01

    Kprobe的使用方法   /* For each probe you need to allocate a kprobe structure */ static struct kprobe kp = { .symbol_name = "do_fork", }; static int __init kprobe_init(void) { int ret; kp.pre_handler = handler_pre; kp.post_handle

  • linux 进程内核栈2020-11-26 13:00:45

    概念 在每一个进程的生命周期中,经常会通过系统调用(SYSCALL)陷入内核。在执行系统调用陷入内核之后,这些内核代码所使用的栈并不是原先用户空间中的栈,而是一个内核空间的栈,这个称作进程的“内核栈”。 每个task的栈分成用户栈和内核栈两部分,进程内核栈在kernel中的定义是: union thr

  • Linux kernel 使用 kprobe2020-09-19 11:33:32

    1 #include <linux/module.h> 2 #include <linux/file.h> 3 #include <linux/uaccess.h> 4 #include <linux/kallsyms.h> 5 #include <linux/kprobes.h> 6 7 // 8 // long do_sys_open(int dfd, const char __user *filename, int fla

  • xenomai内核解析之双核系统调用(一)2020-06-18 23:55:30

    版权声明:本文为本文为博主原创文章,转载请注明出处。如有错误,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/ 目录xenomai 内核系统调用一、32位Linux系统调用二、32位实时系统调用三、 64位系统调用五、 实时系统调用表cobalt_syscalls六、实时系统调用权限控制cobalt_sysmo

  • 深入理解系统调用2020-05-26 14:54:51

    准备工作 配置和编译Linux内核 下载和解压Linux内核,此次实验使用的是5.4.34版本 使用make menuconfig来配置内核,主要配置以下几个选项来开启内核调试功能 Kernel hacking ---> Compile-time checks and compiler options ---> [*] Compile the kernel with debug info [*] Pro

  • 深入理解Linux系统调用2020-05-26 11:01:39

    深入理解Linux系统调用 实验要求 找一个系统调用,系统调用号为学号最后2位相同的系统调用; 通过汇编指令触发该系统调用; 通过gdb跟踪该系统调用的内核处理过程; 重点阅读分析系统调用入口的保存现场、恢复现场和系统调用返回,以及重点关注系统调用过程中内核堆栈状态的变化。 环境准

  • 深入理解系统调用2020-05-24 15:58:25

    实验要求 找一个系统调用,系统调用号为学号最后2位相同的系统调用 通过汇编指令触发该系统调用 通过gdb跟踪该系统调用的内核处理过程 重点阅读分析系统调用入口的保存现场、恢复现场和系统调用返回,以及重点关注系统调用过程中内核堆栈状态的变化 系统调用原理: https://www.cntof

  • MIPS Examples of Instructions on DLX2020-03-20 16:53:41

    Examples of Instructions on DLX 自学党手头资料不足,书本上没有详细解释Google到了这个 To understand these tables we need to introduce notations of the description language.  A subscript is appended to the symbol <- whenever the length of the datum being tranfer

  • Android中的so注入(inject)和挂钩(hook) - For both x86 and arm2020-02-26 17:37:30

    对于Android for arm上的so注入(inject)和挂钩(hook),网上已有牛人给出了代码-libinject(http://bbs.pediy.com/showthread.php?t=141355)。由于实现中的ptrace函数是依赖于平台的,所以不经改动只能用于arm平台。本文将之扩展了一下,使它能够通用于Android的x86和arm平台。Arm平台部

  • Linux系统初始化基础原理笔记2020-01-30 19:02:15

    一、x86架构 1. x86架构奠定了当今计算机开放平台的标准和基础,其中最经典的一款处理器是8086处理器。虽然它已经很老了,但是现在操作系统中的很多特性都和它有关,并且一直保持兼容。它的结构示意图如下所示: 8086处理器内部有8个16位的通用寄存器,也就是CPU内部的数据单元,分别是AX

  • 深入理解libaio 接口2020-01-07 13:56:53

    也许大家都会使用libaio接口,但它和内核是如何交互的呢?内核的机制又是怎样的呢?下面就一起跟踪下主要的流程。 登堂入室:系统调用 依赖的头文件 #include <errno.h> #include <sys/syscall.h> #include <unistd.h> 主要的函数: /* Actual syscalls */ int io_setup(int maxevents, io_c

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有