以pcre2调试为例
1 2 3 4 5 6 7 8 9 | #!/bin/sh cd `pwd`/installed/bin mkfifo /tmp/pcre echo "<h1>hello</h1>" > /tmp/pcre & gdb ./pcre2grep -ex 'b main' -ex 'r -o "<.*>" < /tmp/pcre' rm /tmp/pcre |
人,技术,生活。
以pcre2调试为例
1 2 3 4 5 6 7 8 9 | #!/bin/sh cd `pwd`/installed/bin mkfifo /tmp/pcre echo "<h1>hello</h1>" > /tmp/pcre & gdb ./pcre2grep -ex 'b main' -ex 'r -o "<.*>" < /tmp/pcre' rm /tmp/pcre |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | van = von = de = of = from la = le = les Boer: 农民 Bakker: 面包师 Schoenmaker: 鞋匠 Hoedemaker: 制帽匠 Visser: 渔夫 Kuip: 篾匠 Bruier: 酿酒师 Bosman: 伐木工 Beek: 小溪 Dam: 坝 Dijk: 堤 Hoek: 角落 Berg: 小山包 Bach:小河 Adler:鹰 Winzer:种葡萄的人 Philip: 爱马者 Paul: 小个子 Klein:矮子 Schwarz:黑人 Patrick: 高贵的 Rex: 帝王 Richard/Ricky: 严厉的统治 Charlie查理 = carl卡尔in德国 = carlos卡洛斯in西班牙 Louis路易 = Ludwig路德维希in德国 Calf: 牛犊 |
德国姓氏
Muller 米勒 磨房主 Schmidt 施密特 工匠 Schneider 施奈德 裁缝 Schulze 警官 Fischer 菲舍尔 渔夫 Weber 韦博 织工 Meyer 迈耶 领主 Wagner 瓦格纳 造车工 Becker 贝克尔 面包师 Schulz 舒尔茨 收债人 Hoffmann 霍夫曼 长工 Hermann 赫尔曼 home ruler |
refer to:
https://zhidao.baidu.com/question/111534700.html
https://zhidao.baidu.com/question/118073174.html
https://zhuanlan.zhihu.com/p/87185027
gcc默认include路径
1 2 | `gcc -print-prog-name=cc1` -v `g++ -print-prog-name=cc1` -v |
优先级由大到小对应下表中的从上到下
1 2 3 4 5 | 命令行-I指定,前面的大于后面的 CPATH CPLUS_INCLUDE_PATH #只对c++文件起作用 C_INCLUDE_PATH #只对c文件起作用,即C_INCLUDE_PATH和CPLUS_INCLUDE_PATH不会同时起作用 gcc默认include路径 |
refer to:
http://www.3scard.com/index.php?m=blog&f=view&id=42
/etc/apt/sources.list
1 2 3 4 | deb http://http.us.debian.org/debian/ testing non-free contrib main #deb http://http.us.debian.org/debian/ stable non-free contrib main #deb http://http.us.debian.org/debian/ unstable non-free contrib main #deb http://http.us.debian.org/debian/ wheezy non-free contrib main |
1 2 | #apt edit-sources
apt update |
NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY 648ACFD622F3D138
1 2 | apt-key adv --keyserver keyserver.ubuntu.com --recv 04EE7237B7D453EC apt-key adv --keyserver keyserver.ubuntu.com --recv 648ACFD622F3D138 |
ubuntu repo names
1 2 3 | wheezy: debian 7.0 xenial: Ubuntu 16.04 focal: Ubuntu 20.04 |
refer to:
https://serverfault.com/questions/550855/how-to-add-debian-testing-repository-to-apt-get
https://yunwei365.blog.csdn.net/article/details/114930145
Use cgdb instead.
Let GDBW denote the command window,
let SRCW denote the source window
let TTYW denote the input window.
Cgdb basic usage
1 2 3 4 5 6 | ESC key in GDBW: switch to SRCW i key in SRCW: switch to GDBW T key in SRCW: switch on/off TTYW PgUp/PgDn key in GDBW: scroll GDBW PgUp/PgDn key in SRCW: scroll SRCW -/= in SRCW: decrease/increase SRCW size |
Patch: GDBW output is truncated.
cgdb/scroller.cpp:146
https://github.com/cgdb/cgdb/pull/269
refer to:
https://github.com/cgdb/cgdb/blob/master/doc/cgdb.texi
名词
1 2 3 4 5 6 7 | I帧: Intra-coded picture P帧: Predictive-coded Picture B帧: Bidirectionally predicted picture GOP: Group of Pictures IDR: Instantaneous Decoding Refresh DTS: Decoding Time Stamp PTS: Presentation Time Stamp |
WebRTC 之视频捕获
https://hyjk2000.github.io/2015/04/21/webrtc-video-capture/
https://github.com/uxctx/DesktopLiveStreaming
retain_sym.txt
1 2 | func1 func2 |
ver_script.txt
1 2 3 4 5 6 7 | LIBA_1.1 { global: foo1; foo2; local: *; }; |
1 | ld -shared --retain-symbols-file=retain_sym.txt --version-script=ver_script.txt tst.o -o tst.so |
refer to:
https://blog.csdn.net/chdhust/article/details/79356717
http://blog.sina.com.cn/s/blog_493667730100csde.html
http://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html
名词
1 2 3 4 5 | pie: position-independent executable pic: position-independent code aslr: address space layout randomization got: global offset table vdso: virtual dynamic shared object |
Basic command
1 2 3 4 5 6 7 8 9 10 11 12 13 | grep [OPTION]... PATTERNS [FILE]... find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression] find . -size +2G -exec du -sh {} \; ps axl | grep VirtualBoxVM | grep -v grep | awk '{print $3};' cat /etc/passwd | sort -k5,5 -t: | column -t -s: while true; do echo sleep 1 sec; sleep 1; cat /home/work/aa.txt 2>/dev/null && echo ok && break; done echo first | xargs -i echo {} second cat /etc/shadow sudo !! cd other_dir cd - # return back |
swap文件
1 2 3 4 | dd if=/dev/zero of=./swap_file bs=1G count=8 mkswap ./swap_file swapon ./swap_file swapoff ./swap_file |
objcopy
1 2 3 | objcopy -I binary -O elf32-i386 -B i386 test.jpg test.o objdump -s -b binary test.o readelf -s test.o |
静态链编stdc++
1 | -Bstatic -lstdc++ -Bdynamic |
工具
1 2 3 4 5 6 | systemtap inotify-tools windres reptyr nmcli nmtui |
自启动
1 2 3 4 5 6 7 8 9 10 11 12 | #/lib/systemd/system/mytask.service #ln -s /lib/systemd/system/mytask.service /etc/systemd/system/multi-user.target.wants/mytask.service [Unit] Description=mytask After=network.target [Service] Type=simple ExecStart=mytask.sh [Install] WantedBy=multi-user.target |
ubuntu
1 2 3 4 5 6 7 8 9 10 | #网络配置文件路径,默认DHCP的连接不会生成文件 /etc/NetworkManager/system-connections/ #run arm64 binary on x86 dpkg --add-architecture armhf && apt-get update && apt-get install libc6:armhf cat /proc/sys/fs/binfmt_misc/ qemu-user -L /home/bamanzi/i386-libs ./prog #disable background process systemctl disable unattended-upgrades ss -tap pv -d <pid> |
centos
1 2 3 4 | #网络配置文件路径 /etc/sysconfig/network-scripts/ifcfg- #compiz https://spins.fedoraproject.org/mate-compiz/download/index.html |
refer to:
http://blog.chinaunix.net/uid-28461677-id-5766451.html
https://blog.csdn.net/weixin_33842304/article/details/91443399
https://unix.stackexchange.com/questions/4034/how-can-i-disown-a-running-process-and-associate-it-to-a-new-screen-shell
https://blog.csdn.net/wuzhong8809/article/details/117450302
https://stackoverflow.com/questions/18312935/find-file-in-linux-then-report-the-size-of-file-searched
https://www.toutiao.com/a7073448755428688399/
https://www.likecs.com/show-695436.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | [*] 64-bit kernel (leave blank for x86) General Setup ---> [*] Optimize very unlikely/likely branches Power management and ACPI options ---> [*] ACPI (Advanced Configuration and Power Interface) Support ---> Processor type and features ---> Processor Family (usually Core2/Newer Xeon) Bus Options ---> < > PCCard (PCMCIA/Cardbus) support Networking support ---> [ ] Amateur Radio support [ ] Wireless (only if you plan on using nat EXCLUSIVELY) Device Drivers ---> Generic Driver Options [*] Maintain a devtmpfs filesystem to mount at /dev Misc Devices ---> [*] VMware Balloon Driver (manages memory between VM and host) [*] VMware VMCI Driver (Virtual Machine Communication Interface - low-latency access to host memory bus) SCSI device support ---> [*] SCSI low-level drivers ---> <*> VMware PVSCSI driver support (high throughput storage adapter) [*] Fusion MPT device support ---> <*> Fusion MPT ScsiHost drivers for SPI [*] Network device support ---> [*] Ethernet driver support ---> (disable every driver but this) [*] AMD Devices <*> AMD PCNet32 PCI support [ ] Wireless LAN (ONLY if you disabled Wireless networking support above) < > VMware VMXNET3 ethernet driver (PCNet32 is more than enough for most use cases - enable this only if you have spare cpu cycles to burn) Graphics support ---> <*> Direct Rendering Manager < > Intel 8xx/9xx/G3x/G4x/HD Graphics <*> DRM driver for VMware Virtual GPU [*] Enable framebuffer console support under vmwgfx by default <*> Support for frame buffer devices Console display driver support ---> <*> Framebuffer Console support Sound card support ---> <*> Advanced Linux Sound Architecture ---> [*] PCI sound devices <*> (Creative) Ensoniq AudioPCI 1371/1373 < > Intel HD Audio File systems ---> (enable only those you anticipate using) <*> Second extended fs support <*> The Extended 4 (ext4) filesystem <*> XFS filesystem support <*> Btrfs filesystem Unstable disk format Pseudo filesystems ---> [*] Tmpfs virtual memory file system support (former shm fs) [*] Tmpfs POSIX Access Control Lists |
efi boot (uncertain, maybe need to ask pc maker for signing the kernel.)
1 2 3 4 5 6 | Processor type and features ---> [*] EFI runtime service support [*] EFI stub support Firmware Drivers ---> EFI (Extensible Firmware Interface) Support ---> <*> EFI Variable Support via sysfs |
device mapper
1 2 3 | Device Drivers Multiple devices driver support (RAID and LVM) <M> Device mapper support |
refer to:
https://forums.gentoo.org/viewtopic-p-7332884.html
https://stackoverflow.com/questions/40344484/cant-load-self-compiled-linux-kernel
kprobe
1 2 3 4 5 6 7 8 | cd /sys/kernel/debug/tracing echo 'p:myprobe do_sys_open' > kprobe_events echo 'r:myretprobe do_sys_open $retval' > kprobe_events echo 'r:myprobe getname +0($retval):string' > kprobe_events echo 1 > tracing_on echo 1 > events/kprobes/myprobe/enable echo '-:myprobe' > kprobe_events cat trace |
uprobe
1 2 3 4 5 | cd /sys/kernel/debug/tracing echo 'p:do_sth /home/kernel_test/loop_print:0x52d %ip %ax' > uprobe_events echo 'r:do_sth_exit /home/kernel_test/loop_print:0x52d %ip %ax' >> uprobe_events echo 1 > events/uprobes/enable cat trace |
refer to:
https://blog.csdn.net/melody157398/article/details/113764679
https://blog.csdn.net/daiq531/article/details/52749673