GDB之调试系统接口syscall(九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:GDB之调试系统接口。

2.系统调用和编号的映射文件

/usr/share/gdb/syscalls/amd64-linux.xml

<?xml version="1.0"?>
<!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
<!-- Copyright (C) 2009-2022 Free Software Foundation, Inc.Copying and distribution of this file, with or without modification,are permitted in any medium without royalty provided the copyrightnotice and this notice are preserved.  -->
<!-- This file was generated using the following file:/usr/src/linux/arch/x86/include/asm/unistd_64.hThe file mentioned above belongs to the Linux Kernel.  -->
<syscalls_info><syscall name="read" number="0" groups="descriptor"/><syscall name="write" number="1" groups="descriptor"/><syscall name="open" number="2" groups="descriptor,file"/><syscall name="close" number="3" groups="descriptor"/><syscall name="stat" number="4" groups="file"/><syscall name="fstat" number="5" groups="descriptor"/><syscall name="lstat" number="6" groups="file"/><syscall name="poll" number="7" groups="descriptor"/><syscall name="lseek" number="8" groups="descriptor"/><syscall name="mmap" number="9" groups="descriptor,memory"/><syscall name="mprotect" number="10" groups="memory"/><syscall name="munmap" number="11" groups="memory"/><syscall name="brk" number="12" groups="memory"/><syscall name="rt_sigaction" number="13" groups="signal"/><syscall name="rt_sigprocmask" number="14" groups="signal"/><syscall name="rt_sigreturn" number="15" groups="signal"/><syscall name="ioctl" number="16" groups="descriptor"/><syscall name="pread64" number="17" groups="descriptor"/><syscall name="pwrite64" number="18" groups="descriptor"/><syscall name="readv" number="19" groups="descriptor"/><syscall name="writev" number="20" groups="descriptor"/><syscall name="access" number="21" groups="file"/><syscall name="pipe" number="22" groups="descriptor"/><syscall name="select" number="23" groups="descriptor"/><syscall name="sched_yield" number="24"/><syscall name="mremap" number="25" groups="memory"/><syscall name="msync" number="26" groups="memory"/><syscall name="mincore" number="27" groups="memory"/><syscall name="madvise" number="28" groups="memory"/><syscall name="shmget" number="29" groups="ipc"/><syscall name="shmat" number="30" groups="ipc,memory"/><syscall name="shmctl" number="31" groups="ipc"/><syscall name="dup" number="32" groups="descriptor"/><syscall name="dup2" number="33" groups="descriptor"/><syscall name="pause" number="34" groups="signal"/><syscall name="nanosleep" number="35"/><syscall name="getitimer" number="36"/><syscall name="alarm" number="37"/><syscall name="setitimer" number="38"/><syscall name="getpid" number="39"/><syscall name="sendfile" number="40" groups="descriptor,network"/><syscall name="socket" number="41" groups="network"/><syscall name="connect" number="42" groups="network"/><syscall name="accept" number="43" groups="network"/><syscall name="sendto" number="44" groups="network"/><syscall name="recvfrom" number="45" groups="network"/><syscall name="sendmsg" number="46" groups="network"/><syscall name="recvmsg" number="47" groups="network"/><syscall name="shutdown" number="48" groups="network"/><syscall name="bind" number="49" groups="network"/><syscall name="listen" number="50" groups="network"/><syscall name="getsockname" number="51" groups="network"/><syscall name="getpeername" number="52" groups="network"/><syscall name="socketpair" number="53" groups="network"/><syscall name="setsockopt" number="54" groups="network"/><syscall name="getsockopt" number="55" groups="network"/><syscall name="clone" number="56" groups="process"/><syscall name="fork" number="57" groups="process"/><syscall name="vfork" number="58" groups="process"/><syscall name="execve" number="59" groups="file,process"/><syscall name="exit" number="60" groups="process"/><syscall name="wait4" number="61" groups="process"/><syscall name="kill" number="62" groups="signal"/><syscall name="uname" number="63"/><syscall name="semget" number="64" groups="ipc"/><syscall name="semop" number="65" groups="ipc"/><syscall name="semctl" number="66" groups="ipc"/><syscall name="shmdt" number="67" groups="ipc,memory"/><syscall name="msgget" number="68" groups="ipc"/><syscall name="msgsnd" number="69" groups="ipc"/><syscall name="msgrcv" number="70" groups="ipc"/><syscall name="msgctl" number="71" groups="ipc"/><syscall name="fcntl" number="72" groups="descriptor"/><syscall name="flock" number="73" groups="descriptor"/><syscall name="fsync" number="74" groups="descriptor"/><syscall name="fdatasync" number="75" groups="descriptor"/><syscall name="truncate" number="76" groups="file"/><syscall name="ftruncate" number="77" groups="descriptor"/><syscall name="getdents" number="78" groups="descriptor"/><syscall name="getcwd" number="79" groups="file"/><syscall name="chdir" number="80" groups="file"/><syscall name="fchdir" number="81" groups="descriptor"/><syscall name="rename" number="82" groups="file"/><syscall name="mkdir" number="83" groups="file"/><syscall name="rmdir" number="84" groups="file"/><syscall name="creat" number="85" groups="descriptor,file"/><syscall name="link" number="86" groups="file"/><syscall name="unlink" number="87" groups="file"/><syscall name="symlink" number="88" groups="file"/><syscall name="readlink" number="89" groups="file"/><syscall name="chmod" number="90" groups="file"/><syscall name="fchmod" number="91" groups="descriptor"/><syscall name="chown" number="92" groups="file"/><syscall name="fchown" number="93" groups="descriptor"/><syscall name="lchown" number="94" groups="file"/><syscall name="umask" number="95"/><syscall name="gettimeofday" number="96"/><syscall name="getrlimit" number="97"/><syscall name="getrusage" number="98"/><syscall name="sysinfo" number="99"/><syscall name="times" number="100"/><syscall name="ptrace" number="101"/><syscall name="getuid" number="102"/><syscall name="syslog" number="103"/><syscall name="getgid" number="104"/><syscall name="setuid" number="105"/><syscall name="setgid" number="106"/><syscall name="geteuid" number="107"/><syscall name="getegid" number="108"/><syscall name="setpgid" number="109"/><syscall name="getppid" number="110"/><syscall name="getpgrp" number="111"/><syscall name="setsid" number="112"/><syscall name="setreuid" number="113"/><syscall name="setregid" number="114"/><syscall name="getgroups" number="115"/><syscall name="setgroups" number="116"/><syscall name="setresuid" number="117"/><syscall name="getresuid" number="118"/><syscall name="setresgid" number="119"/><syscall name="getresgid" number="120"/><syscall name="getpgid" number="121"/><syscall name="setfsuid" number="122"/><syscall name="setfsgid" number="123"/><syscall name="getsid" number="124"/><syscall name="capget" number="125"/><syscall name="capset" number="126"/><syscall name="rt_sigpending" number="127" groups="signal"/><syscall name="rt_sigtimedwait" number="128" groups="signal"/><syscall name="rt_sigqueueinfo" number="129" groups="signal"/><syscall name="rt_sigsuspend" number="130" groups="signal"/><syscall name="sigaltstack" number="131" groups="signal"/><syscall name="utime" number="132" groups="file"/><syscall name="mknod" number="133" groups="file"/><syscall name="uselib" number="134" groups="file"/><syscall name="personality" number="135"/><syscall name="ustat" number="136"/><syscall name="statfs" number="137" groups="file"/><syscall name="fstatfs" number="138" groups="descriptor"/><syscall name="sysfs" number="139"/><syscall name="getpriority" number="140"/><syscall name="setpriority" number="141"/><syscall name="sched_setparam" number="142"/><syscall name="sched_getparam" number="143"/><syscall name="sched_setscheduler" number="144"/><syscall name="sched_getscheduler" number="145"/><syscall name="sched_get_priority_max" number="146"/><syscall name="sched_get_priority_min" number="147"/><syscall name="sched_rr_get_interval" number="148"/><syscall name="mlock" number="149" groups="memory"/><syscall name="munlock" number="150" groups="memory"/><syscall name="mlockall" number="151" groups="memory"/><syscall name="munlockall" number="152" groups="memory"/><syscall name="vhangup" number="153"/><syscall name="modify_ldt" number="154"/><syscall name="pivot_root" number="155" groups="file"/><syscall name="_sysctl" number="156"/><syscall name="prctl" number="157"/><syscall name="arch_prctl" number="158" groups="process"/><syscall name="adjtimex" number="159"/><syscall name="setrlimit" number="160"/><syscall name="chroot" number="161" groups="file"/><syscall name="sync" number="162"/><syscall name="acct" number="163" groups="file"/><syscall name="settimeofday" number="164"/><syscall name="mount" number="165" groups="file"/><syscall name="umount2" number="166" groups="file"/><syscall name="swapon" number="167" groups="file"/><syscall name="swapoff" number="168" groups="file"/><syscall name="reboot" number="169"/><syscall name="sethostname" number="170"/><syscall name="setdomainname" number="171"/><syscall name="iopl" number="172"/><syscall name="ioperm" number="173"/><syscall name="create_module" number="174"/><syscall name="init_module" number="175"/><syscall name="delete_module" number="176"/><syscall name="get_kernel_syms" number="177"/><syscall name="query_module" number="178"/><syscall name="quotactl" number="179" groups="file"/><syscall name="nfsservctl" number="180"/><syscall name="getpmsg" number="181"/><syscall name="putpmsg" number="182"/><syscall name="afs_syscall" number="183"/><syscall name="tuxcall" number="184"/><syscall name="security" number="185"/><syscall name="gettid" number="186"/><syscall name="readahead" number="187" groups="descriptor"/><syscall name="setxattr" number="188" groups="file"/><syscall name="lsetxattr" number="189" groups="file"/><syscall name="fsetxattr" number="190" groups="descriptor"/><syscall name="getxattr" number="191" groups="file"/><syscall name="lgetxattr" number="192" groups="file"/><syscall name="fgetxattr" number="193" groups="descriptor"/><syscall name="listxattr" number="194" groups="file"/><syscall name="llistxattr" number="195" groups="file"/><syscall name="flistxattr" number="196" groups="descriptor"/><syscall name="removexattr" number="197" groups="file"/><syscall name="lremovexattr" number="198" groups="file"/><syscall name="fremovexattr" number="199" groups="descriptor"/><syscall name="tkill" number="200" groups="signal"/><syscall name="time" number="201"/><syscall name="futex" number="202"/><syscall name="sched_setaffinity" number="203"/><syscall name="sched_getaffinity" number="204"/><syscall name="set_thread_area" number="205"/><syscall name="io_setup" number="206"/><syscall name="io_destroy" number="207"/><syscall name="io_getevents" number="208"/><syscall name="io_submit" number="209"/><syscall name="io_cancel" number="210"/><syscall name="get_thread_area" number="211"/><syscall name="lookup_dcookie" number="212"/><syscall name="epoll_create" number="213" groups="descriptor"/><syscall name="epoll_ctl_old" number="214"/><syscall name="epoll_wait_old" number="215"/><syscall name="remap_file_pages" number="216" groups="memory"/><syscall name="getdents64" number="217" groups="descriptor"/><syscall name="set_tid_address" number="218"/><syscall name="restart_syscall" number="219"/><syscall name="semtimedop" number="220" groups="ipc"/><syscall name="fadvise64" number="221" groups="descriptor"/><syscall name="timer_create" number="222"/><syscall name="timer_settime" number="223"/><syscall name="timer_gettime" number="224"/><syscall name="timer_getoverrun" number="225"/><syscall name="timer_delete" number="226"/><syscall name="clock_settime" number="227"/><syscall name="clock_gettime" number="228"/><syscall name="clock_getres" number="229"/><syscall name="clock_nanosleep" number="230"/><syscall name="exit_group" number="231" groups="process"/><syscall name="epoll_wait" number="232" groups="descriptor"/><syscall name="epoll_ctl" number="233" groups="descriptor"/><syscall name="tgkill" number="234" groups="signal"/><syscall name="utimes" number="235" groups="file"/><syscall name="vserver" number="236"/><syscall name="mbind" number="237" groups="memory"/><syscall name="set_mempolicy" number="238" groups="memory"/><syscall name="get_mempolicy" number="239" groups="memory"/><syscall name="mq_open" number="240"/><syscall name="mq_unlink" number="241"/><syscall name="mq_timedsend" number="242"/><syscall name="mq_timedreceive" number="243"/><syscall name="mq_notify" number="244"/><syscall name="mq_getsetattr" number="245"/><syscall name="kexec_load" number="246"/><syscall name="waitid" number="247" groups="process"/><syscall name="add_key" number="248"/><syscall name="request_key" number="249"/><syscall name="keyctl" number="250"/><syscall name="ioprio_set" number="251"/><syscall name="ioprio_get" number="252"/><syscall name="inotify_init" number="253" groups="descriptor"/><syscall name="inotify_add_watch" number="254" groups="descriptor"/><syscall name="inotify_rm_watch" number="255" groups="descriptor"/><syscall name="migrate_pages" number="256" groups="memory"/><syscall name="openat" number="257" groups="descriptor,file"/><syscall name="mkdirat" number="258" groups="descriptor,file"/><syscall name="mknodat" number="259" groups="descriptor,file"/><syscall name="fchownat" number="260" groups="descriptor,file"/><syscall name="futimesat" number="261" groups="descriptor,file"/><syscall name="newfstatat" number="262" groups="descriptor,file"/><syscall name="unlinkat" number="263" groups="descriptor,file"/><syscall name="renameat" number="264" groups="descriptor,file"/><syscall name="linkat" number="265" groups="descriptor,file"/><syscall name="symlinkat" number="266" groups="descriptor,file"/><syscall name="readlinkat" number="267" groups="descriptor,file"/><syscall name="fchmodat" number="268" groups="descriptor,file"/><syscall name="faccessat" number="269" groups="descriptor,file"/><syscall name="pselect6" number="270" groups="descriptor"/><syscall name="ppoll" number="271" groups="descriptor"/><syscall name="unshare" number="272" groups="process"/><syscall name="set_robust_list" number="273"/><syscall name="get_robust_list" number="274"/><syscall name="splice" number="275" groups="descriptor"/><syscall name="tee" number="276" groups="descriptor"/><syscall name="sync_file_range" number="277" groups="descriptor"/><syscall name="vmsplice" number="278" groups="descriptor"/><syscall name="move_pages" number="279" groups="memory"/><syscall name="utimensat" number="280" groups="descriptor,file"/><syscall name="epoll_pwait" number="281" groups="descriptor"/><syscall name="signalfd" number="282" groups="descriptor,signal"/><syscall name="timerfd_create" number="283" groups="descriptor"/><syscall name="eventfd" number="284" groups="descriptor"/><syscall name="fallocate" number="285" groups="descriptor"/><syscall name="timerfd_settime" number="286" groups="descriptor"/><syscall name="timerfd_gettime" number="287" groups="descriptor"/><syscall name="accept4" number="288" groups="network"/><syscall name="signalfd4" number="289" groups="descriptor,signal"/><syscall name="eventfd2" number="290" groups="descriptor"/><syscall name="epoll_create1" number="291" groups="descriptor"/><syscall name="dup3" number="292" groups="descriptor"/><syscall name="pipe2" number="293" groups="descriptor"/><syscall name="inotify_init1" number="294" groups="descriptor"/><syscall name="preadv" number="295" groups="descriptor"/><syscall name="pwritev" number="296" groups="descriptor"/>
</syscalls_info>

3.设置系统函数mmap catchpoint实例 (mmap对应编号9)

1 #include <cstdio>
2 
3 int main(void){
4   int num = 100;
5 
6   printf("num = %d\n", num);
7   return 0;
8 }

调试方式一:系统函数名调试

(gdb) catch syscall mmap
Catchpoint 1 (syscall 'mmap' [9])
(gdb) r
Starting program: /home/meek/demo/C/111/test Catchpoint 1 (call to syscall mmap), __mmap64 (offset=0, fd=-1, flags=34, prot=3, len=8192, addr=0x0) at ../sysdeps/unix/sysv/linux/mmap64.c:58
58	../sysdeps/unix/sysv/linux/mmap64.c: 没有那个文件或目录.
(gdb) c
Continuing.Catchpoint 1 (returned from syscall mmap), __mmap64 (offset=0, fd=-1, flags=34, prot=3, len=8192, addr=0x0) at ../sysdeps/unix/sysv/linux/mmap64.c:58
58	in ../sysdeps/unix/sysv/linux/mmap64.c

调试方式二:编号调试(mmap函数对应编号9)

(gdb) catch syscall 9
Catchpoint 2 (syscall 'mmap' [9])
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/meek/demo/C/111/test Catchpoint 1 (call to syscall mmap), __mmap64 (offset=0, fd=-1, flags=34, prot=3, len=8192, addr=0x0) at ../sysdeps/unix/sysv/linux/mmap64.c:58
58	../sysdeps/unix/sysv/linux/mmap64.c: 没有那个文件或目录.
(gdb) c
Continuing.Catchpoint 1 (returned from syscall mmap), __mmap64 (offset=0, fd=-1, flags=34, prot=3, len=8192, addr=0x0) at ../sysdeps/unix/sysv/linux/mmap64.c:58
58	in ../sysdeps/unix/sysv/linux/mmap64.c
//查看当前堆栈信息
(gdb) bt
#0  __mmap64 (offset=0, fd=3, flags=2050, prot=1, len=2260560, addr=0x0) at ../sysdeps/unix/sysv/linux/mmap64.c:58
#1  __mmap64 (addr=0x0, len=len@entry=2260560, prot=prot@entry=1, flags=flags@entry=2050, fd=fd@entry=3, offset=0) at ../sysdeps/unix/sysv/linux/mmap64.c:46
#2  0x00007ffff7fcbf1c in _dl_map_segment (fd=3, maplength=2260560, mappref=<optimized out>, c=0x7fffffffc700) at ./dl-map-segments.h:29
#3  _dl_map_segments (loader=0x4, has_holes=false, maplength=2260560, nloadcmds=<optimized out>, loadcmds=0x7fffffffc700, type=3, header=<optimized out>, fd=3, l=0x7ffff7fbb160) at ./dl-map-segments.h:102
#4  _dl_map_object_from_fd (name=name@entry=0x5555555544a9 "libc.so.6", origname=origname@entry=0x0, fd=<optimized out>, fbp=<optimized out>, realname=<optimized out>, loader=loader@entry=0x7ffff7ffe2e0, l_type=<optimized out>, mode=<optimized out>, stack_endp=<optimized out>, nsid=<optimized out>) at ./elf/dl-load.c:1258
#5  0x00007ffff7fcd601 in _dl_map_object (loader=0x7ffff7ffe2e0, name=0x5555555544a9 "libc.so.6", type=1, trace_mode=0, mode=0, nsid=<optimized out>) at ./elf/dl-load.c:2327
#6  0x00007ffff7fc6495 in openaux (a=a@entry=0x7fffffffd4c0) at ./elf/dl-deps.c:64
#7  0x00007ffff7fe036a in _dl_catch_exception (exception=exception@entry=0x7fffffffd4a0, operate=operate@entry=0x7ffff7fc6460 <openaux>, args=args@entry=0x7fffffffd4c0) at ./elf/dl-error-skeleton.c:208
#8  0x00007ffff7fc6c7c in _dl_map_object_deps (map=map@entry=0x7ffff7ffe2e0, preloads=preloads@entry=0x0, npreloads=npreloads@entry=0, trace_mode=<optimized out>, open_mode=open_mode@entry=0) at ./elf/dl-deps.c:248
#9  0x00007ffff7fe63c0 in dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=<optimized out>, auxv=<optimized out>) at ./elf/rtld.c:1970
#10 0x00007ffff7fe285c in _dl_sysdep_start (start_argptr=start_argptr@entry=0x7fffffffdd70, dl_main=dl_main@entry=0x7ffff7fe4900 <dl_main>) at ../elf/dl-sysdep.c:256
#11 0x00007ffff7fe45b8 in _dl_start_final (arg=0x7fffffffdd70) at ./elf/rtld.c:507
#12 _dl_start (arg=0x7fffffffdd70) at ./elf/rtld.c:596
#13 0x00007ffff7fe32b8 in _start () from /lib64/ld-linux-x86-64.so.2
#14 0x0000000000000001 in ?? ()
#15 0x00007fffffffe118 in ?? ()
#16 0x0000000000000000 in ?? ()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 知识扫盲

JavaScript 知识扫盲 写在前面一、JavaScript 写入形式二、常用输入输出三、JS 是动态类型语言四、运算符五、数组1、数组创建2、获取和修改数组元素3、新增元素4、删除元素 六、函数七、对象1、对象的创建2、属性方法的使用 八、JavaScript 和 Java 对比九、事件1、常见事件2、…

Kubernetes(k8s)上搭建nacos集群

Kubernetes上搭建nacos集群 环境准备Kubernetes准备数据库准备 部署nacos集群官方镜像地址创建configmap创建部署文件根据yaml资源清单文件部署nacos 环境准备 Kubernetes准备 你需要准备一个Kubernetes集群&#xff0c;如图我的集群已经准备完毕&#xff1a; 数据库准备 …

【蓝桥杯选拔赛真题60】Scratch旋转风车 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析

目录 scratch旋转风车 一、题目要求 编程实现 二、案例分析 1、角色分析

【脑机接口论文与代码】 基于自适应FBCCA的脑机接口控制机械臂

Brain-Controlled Robotic Arm Based on Adaptive FBCCA 基于自适应FBCCA的脑机接口控制机械臂论文下载&#xff1a;算法程序下载&#xff1a;摘要1 项目介绍2 方法2.1CCA算法2.2FBCCA 算法2.3自适应FBCCA算法 3数据获取4结果4.1脑地形图4.2频谱图4.3准确率 5结论 基于自适应FB…

Spring底层的核心原理解析

这篇文章大致讲解一下spring的整个执行流程&#xff0c;也就是在我们脑子里面建立一个笼统的概念 spring如何创建一个容器呢 容器里面是对象 上面就是利用AnnotationConfigApplicationContext这个对象&#xff0c;然后传入了一个配置类的字节码对象给我们创建一个Spring容器&am…

Hyper-V 安装 CentOS (二)

总目录 https://preparedata.blog.csdn.net/article/details/132877836 文章目录 总目录一、Hyper-V 创建centos的虚拟机实例二、虚拟机安装Centos ISO镜像三、重启后&#xff0c;进入系统 一、Hyper-V 创建centos的虚拟机实例 网络连接先不选择&#xff0c;后面文章专门配置网…

【软考】系统架构设计师 - 知识扩展 - “区块链技术“

目录 一 简介&#x1f451; 1 比特币❤️ 2 区块链的特点❤️ 3 共识算法❤️ 二 练习题&#x1f451; 三 扩展&#x1f451; 1 哈希算法❤️ 2 哈希指针❤️ 3 UTXO❤️ 4 参考资料❤️ 一 简介&#x1f451; 1 比特币❤️ 比特币底层采用了区块链技术。 比特币交易…

03目标检测-传统方法与深度学习算法对比

目录 一、目标学习的检测方法变迁及对比 二、深度学习目标检测算法基本流程 三、传统目标检测算法VS深度学习目标检测算法 一、目标学习的检测方法变迁及对比 “目标检测“是当前计算机视觉和机器学习领域的研究热点。从Viola-Jones Detector、DPM等冷兵器时代的智…

【数据结构】二叉树的链式结构

【数据结构】二叉树的链式存储结构 二叉树的存储结构 typedef int BTDataType; // 二叉树的结构 typedef struct BinaryTreeNode {BTDataType data; // 树的值struct BinaryTreeNode *left; // 左孩子struct BinaryTreeNode *right;// 右孩子 } BinaryTreeNode;二…

EXCEL如何把一个单元格内的文本和数字分开?例如:龚龚15565 = 龚龚 15565

使用工具&#xff1a;WPS 举例&#xff1a; EXCEL如何把一个单元格内的文本和数字批量分开&#xff1f;不使用数据分列。 第一步、将第二行数据冻结 第二步、在B1、C1单元格输入需要分开的示例 第三步、点击选中B1单元格&#xff0c;输入快捷键【CTRLE】进行填充。B2单元格也是…

【AIGC】图片生成的原理与应用

前言 近两年 AI 发展非常迅速&#xff0c;其中的 AI 绘画也越来越火爆&#xff0c;AI 绘画在很多应用领域有巨大的潜力&#xff0c;AI 甚至能模仿各种著名艺术家的风格进行绘画。 目前比较有名商业化的 AI 绘画软件有 Midjourney、DALLE2、以及百度出品的文心一格&#xff1a;…

MinGW-W64 下载、安装与配置(支持最新版的GCC,目前 GCC 13.2.0)VSCode配置c/c++环境 彻底删除vscode(包括插件及配置!)

目录 一、简介 二、下载 1 旧版安装&#xff08;8.1.0&#xff09; 从 sourceforge.net 下载 2 新版安装(本次采用较新版本~~~) 从 github 下载 从 镜像站点 下载 自己编译 三、安装与配置 1. 在线安装&#xff08;这里仅作参考了解&#xff09; 2. 离线安装&…

异步FIFO设计的仿真与综合技术(3)

概述 本文主体翻译自C. E. Cummings and S. Design, “Simulation and Synthesis Techniques for Asynchronous FIFO Design 一文&#xff0c;添加了笔者的个人理解与注释&#xff0c;文中蓝色部分为笔者注或意译。前文链接&#xff1a; 异步FIFO设计的仿真与综合技术&#xf…

自动化测试(五):自动化测试框架的搭建和基于yaml热加载的测试用例的设计

该部分是对自动化测试专栏前四篇的一个补充&#xff0c;本次参考以下文章实现一个完整的谷歌翻译接口自动化测试:   [1]【python小脚本】Yaml配置文件动态加载   [2]【python做接口测试的学习记录day8——pytest自动化测试框架之热加载和断言封装】 目标&#xff1a;框架封…

新增动态排序图、桑基图、AntV组合图,DataEase开源数据可视化分析平台v1.18.10发布

2023年9月14日&#xff0c;DataEase开源数据可视化分析平台正式发布v1.18.10版本。 这一版本的功能升级包括&#xff1a;数据集方面&#xff0c;对字段管理的后台保存做了相关优化&#xff0c;降低了资源消耗&#xff1b;仪表板方面&#xff0c;对联动、查询结果以及过滤组件等…

系统架构:软件工程速成

文章目录 参考概述软件工程概述软件过程 可行性分析可行性分析概述数据流图数据字典 需求分析需求分析概述ER图状态转换图 参考 软件工程速成(期末考研复试软考)均适用. 支持4K 概述 软件工程概述 定义&#xff1a;采用工程的概念、原理、技术和方法来开发与维护软件。 三…

GET,POST,DELETE,PUT参数传递的形式

一.get请求参数在地址后面进行拼接 1.代码&#xff1a; <template><div class""><button click"fn">点击</button></div> </template><script> import axios from "axios"; //安装完之后&#xff0…

MFC中嵌入显示opencv窗口

在MFC窗体中建立一个Picture Control控件,用于显示opencv窗口 在属性中设置图片控件的资源ID为IDC_PIC1 主要的思路: 使用GetWindowRect可以获取图片控件的区域 使用cv::resizeWindow可以设置opencv窗口的大小,适合图片控件的大小 使用cvGetWindowHandle函数可以获取到ope…

OpenCV(四十二):Harris角点检测

1.Harris角点介绍 什么是角点&#xff1f; 角点指的是两条边的交点&#xff0c;图中红色圈起来的点就是角点。 Harris角点检测原理&#xff1a;首先定义一个矩形区域&#xff0c;然后将这个矩形区域放置在我的图像中&#xff0c;求取这个区域内所有的像素值之和&#xff0c;之…

麒麟v10安装mysql(ARM架构)

下载MYSQL安装包 华为开源镜像站_软件开发服务_华为云 上面的选择一个下载 或者用命令下载 wget https://repo.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/database/mysql-5.7.27-1.el7.aarch64.rpm 检查是否已经安装MySQL rpm -qa | grep mysql将包卸载掉 rpm -…