1 2 3 4 | n ん ng い iu ゅう ou ょう |
refer to:
https://www.bilibili.com/video/BV1es41127PE?from=search&seid=11101436971240675305
人,技术,生活。
1 2 3 4 | n ん ng い iu ゅう ou ょう |
refer to:
https://www.bilibili.com/video/BV1es41127PE?from=search&seid=11101436971240675305
1 | apt install libncurses-dev |
1 | vi /etc/vim/vimrc |
加入
1 2 3 4 5 6 7 8 9 10 11 | "colorscheme torte colorscheme koehler set guifont=Monospace\ 9 set guioptions=aegimLt set cindent set number set hls let g:SrcExpl_isUpdateTags = 0 if has("autocmd") au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif endif |
refer to:
https://blog.csdn.net/wu407797466/article/details/7939148?utm_source=blogxgwz0
先安装gvim
1 | sudo apt install vim-gtk3 |
再下载最新clewn
1 | http://clewn.sourceforge.net |
比如clewn-1.15.tar.gz
1 2 3 4 5 6 7 | apt install libncurses-dev apt install libreadline-dev tar xaf clewn-1.15.tar.gz cd clewn-1.15 ./configure make make install |
获取要调试程序的pid,比如98747
1 | clewn -ga "-p 98747" |
在原命令行中打断点再继续,当被调试程序命中断点后,gvim中会同步源码到断点处。
refer to:
http://clewn.sourceforge.net/doc.html
1 | vi /etc/apt/sources.list |
uncomment lines beginning with 'deb-src' and save, then
1 2 | apt-get update apt-get source linux-image-unsigned-$(uname -r) |
refer to:
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
https://stackoverflow.com/questions/45766719/error-during-ubuntu-kernel-source-download
名词缩写
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 | psk: pre-shared key pki: public key infrastructure pkcs: the public-key cryptography standards ah: authentication header esp: encapsulating security payload esn: extended sequence number, rfc 4304 spi: security parameter index ike: internet key exchange isakmp: internet security association and key management protocol sa: security association spd: security policy database sad: sa database pad: peer authorization database dh: diffie-hellman, oakley gre: general routing encapsulation nas: network access server pap: password authentication protocol chap: challenge-handshake authentication protocol eap: extensible authentication protocol leap: lightweight eap peap: protected eap tls:transport layer security ssl: secure socket layer fast: flexible authentication via secure tunneling pac: protected authentication credential pptp: point to point tunneling protocol l2f: layer 2 forwarding l2tp: layer 2 tunneling protocol sstp: secure socket tunneling protocol vrc: vpn remote client des: data encryption standard aes: advanced encryption standard ecb: electronic codebook book cbc: cipher block chaining ctr: counter cfb: cipher feedback ofb: output feedback hmac: hash-based message authentication code sha1: secure hash algorithm 1 prf: pseudo-random function aead: authenticated encryption with associated data icv: integrity check value ocsp: online certificate status protocol dpd: dead peer detection |
rfc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | rfc1994: PPP Challenge Handshake Authentication Protocol (CHAP) rfc2865: Remote Authentication Dial In User Service (RADIUS) rfc3579: RADIUS Support For Extensible Authentication Protocol (EAP) rfc3748: Extensible Authentication Protocol (EAP) rfc4186: EAP Method for GSM Subscriber Identity Modules (EAP-SIM) rfc4187: EAP Method for 3rd Generation Authentication and Key Agreement (EAP-AKA) rfc4301: Security Architecture for the Internet Protocol rfc4306: Internet Key Exchange (IKEv2) Protocol rfc4307: Cryptographic Algorithms for Use in IKEv2 rfc4478: Repeated Authentication in Internet Key Exchange (IKEv2) Protocol rfc4543: The Use of Galois Message Authentication Code (GMAC) in IPsec ESP and AH rfc4555: IKEv2 Mobility and Multihoming Protocol (MOBIKE) rfc4718: IKEv2 Clarifications and Implementation Guidelines rfc4739: Multiple Authentication Exchanges in the Internet Key Exchange (IKEv2) Protocol rfc4806: Online Certificate Status Protocol (OCSP) Extensions to IKEv2 rfc5996: Internet Key Exchange Protocol Version 2 (IKEv2) rfc5998: An Extension for EAP-Only Authentication in IKEv2 rfc6479: IPsec Anti-Replay Algorithm without Bit Shifting |
ipsec-tools
1 2 | setkey: sad, spd racoon: ike sa, ipsec sa |
网络分层
1 2 3 4 5 | 物理层,也叫第一层 链路层,也叫第二层(MAC) 网络层,也叫第三层(IP) 传输层(TCP) 应用层(HTTP) |
TCP术语
1 2 3 4 5 6 7 8 9 10 | tos: type of service ecn: explicit congestion notification dscp: differentiated services codepoint rtt: round-trip time ttl: time to live tso: tcp segmentation offloading ufo: udp fragmentation offloading qdisc: queueing discipline poe: power over ethernet toe: tcp offload engine |
IPS
1 2 | ids: intrusion detection system ips: intrusion prevention system |
refer to:
https://blog.csdn.net/jiangwlee/article/details/7395903
https://baike.baidu.com/item/PKCS/1042350?fr=aladdin
https://blog.csdn.net/qq_27969037/article/details/95929199
https://wikitech.wikimedia.org/wiki/IPsec
https://datatracker.ietf.org/doc/html/rfc2401
https://wiki.strongswan.org/projects/strongswan/wiki/IpsecConf
在主程序里拼成一个文件WorkerInputOnly.in后启动ShaderCompileWorker.exe进程编译shader源码。以下是调试时记录下来的命令行
D:/ue/Engine/Binaries/Win64/ShaderCompileWorker.exe "C:/Users/euhat/AppData/Local/Temp/UnrealShaderWorkingDir/A1AF8D424B2A34C30CE4378EDE6A0EFB/2/" 14492 2 WorkerInputOnly.in WorkerOutputOnly.out -communicatethroughfile -TimeToLive=20.000000 -Multiprocess
Here, TLS is the initialism of thread local storage.
pthread
1 2 3 4 5 6 | #include <pthread.h> int pthread_key_create (pthread_key_t *key, void (*destructor)(void *)); int pthread_key_delete (pthread_key_t key); int pthread_setspecific (pthread_key_t key, const void *value); void *pthread_getspecific (pthread_key_t key); int pthread_once(pthread_once_t *once_control, void (*init)(void)); |
gcc
1 | static __thread int buf[MAX_ERROR_LEN]; |
win32
1 2 3 4 5 6 7 8 9 10 11 12 | DWORD TlsAlloc(); BOOL TlsFree(DWORD dwTlsIndex); LPVOID TlsGetValue(DWORD dwTlsIndex); BOOL TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue); // or // in header, __declspec(thread) extern size_t strdupa_len; // and in c file, // as to one variable, __declspec(thread) should be write twice, // one in prefix of prototype, // one in prefix of definition __declspec(thread) size_t strdupa_len; |
refer to:
https://blog.csdn.net/vevenlcf/article/details/77882985
https://blog.csdn.net/linyt/article/details/51931737
新旧词类名
1 2 3 4 5 6 7 8 9 | 学校語法 教育语法 形容词 第一类形容词 形容动词 第二类形容词 五段动词 第一类动词 话す(はなす)、待つ(まつ)、死ぬ(しぬ)、読む(よむ)、笑う(わらう)、泳ぐ(およぐ) 一段动词 第二类动词 上一段动词 词尾是i+る 満ちる、みる 下一段动词 词尾是e+る 逃げる カ、サ变动词 第三类动词 する、くる |
特殊五段动词
1 2 3 4 5 6 7 8 9 | 嘲(あざけ)る 焦(あせ)る 要(い)る 煎(い)る 返(かえ)る 帰(かえ)る 限(かぎ)る 切(き)る 覆(くつがえ)る 蹴(け)る 遮(さえぎ)る 茂(しげ)る 湿(しめ)る 知(し)る 滑(すべ)る 散(ち)る 照(て)る 握(にぎ)る 练(ね)る 骂(ののし)る 入(はい)る 走(はし)る 减(へ)る 参(まい)る 混(ま)じる 涨(みなぎ)る |
特殊一段动词
1 2 3 4 | 見る 着る 干(ひ)る 居(い)る 似(に)る 煮(に)る 率(い)る 嚏(ひ)る 簸(ひ)る 射(い)る 铸(い)る 寝る 出る 得る |
连用形(ます形)
1 2 3 4 5 6 7 8 | 五段 う段 い段 行く 行き 一段 去掉る 寝る 寝 カ变 来る 来(き) サ变 する し |
未然形(ない形)
1 2 3 4 5 6 7 8 9 10 11 12 13 | 五段 う段 あ段+ない 行く 行かない 以う结尾 う わ+ない 言う 言わない 一段 去掉る ない 寝る 寝ない カ变 来る 来ない(こない) サ变 する しない 勉強する 勉強しない 特殊 ある ない |
意志形((よ)う形)
1 2 3 4 5 6 7 8 9 | 五段 う段 お段+う 行く 行こう 一段 去掉る+よう 寝る 寝よう カ变 来る 来よう(こよう) サ变 する しよう 勉強する 勉強しよう |
假定形(ば形)
1 2 3 4 5 6 7 8 9 10 11 12 13 | 五段 最后一个音变成相应的え段上的音 いう いえば 飛ぶ 飛べば 二类动词 る变成れば 食べる 食べれば 三类动词 来る 来れば する すれば 一类形容词 去掉词尾的い变成ければ ない なければ 悲しい 悲しければ 二类形容词和名词 词干+なら(ば) 鳥 鳥ならば |
命令形
1 2 3 4 5 6 7 8 9 | 五段 う段 え段 行く 行け 一段 る ろ 寝る 寝ろ カ变 来る 来い(こい) サ变 する せよ或しろ 勉強する 勉強しろ |
て形、た形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | い形容词 去掉词尾的い+かった ない なかった な形容词 词干+だった 綺麗 綺麗だった 名词 だった是だ的过去式 卵 卵だった 一段动词 词尾る去掉之后接た 起きる 起きた サ变动词 する去掉之后接した 勉強する 勉強した カ变动词 来(く)る 来(き)た 五段动词 うつる った ぶぬむ んだ く いた ぐ いだ す した 行く 行った |
可能态
1 2 3 4 5 6 7 8 | 五段 う段 え段+る 行く 行ける 一段 去掉る+られる 寝る 寝られる カ变 来る 来られる(こられる) サ变 する できる 勉強する 勉強できる 特点 vt.和宾语之间的を→が |
被动态
1 2 3 4 5 6 7 8 9 10 11 | 五段 う段 あ段+れる 書く 書かれる う わ+れる 言う 言われる 一段 去掉る+られる 寝る 寝られる カ变 来る 来られる(こられる) サ变 する される 勉強する 勉強される 特点 自动词和对象之间的が→に |
使役态
1 2 3 4 5 6 7 8 9 10 | 五段 う段 あ段+せる 書く 書かせる う わ+せる 言う 言わせる 一段 去掉る+させる 寝る 寝させる カ变 来る 来させる(こさせる) サ变 する させる 勉強する 勉強させる 特点 自动词和对象执行者之间的に→を |
1 2 3 4 5 6 7 8 9 10 | vi. vt. あ段+る:掛かる え段+る:掛ける い段+る:落ちる す:落とす え段+る:壊れる す:壊す く:届く え段+る:届ける く:片付く え段+る:片づける く:乾く す:乾かす 焼ける 焼く 割れる 割る 休む 休む |
refer to:
https://zhuanlan.zhihu.com/p/379864257
碳酸氢镭、教日语的青禾君
wangwenwen
日语学习之路
https://jingyan.baidu.com/article/8275fc86d7b44407a13cf602.html
https://jingyan.baidu.com/article/c33e3f48ec171aab15cbb5a9.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 | #include <iostream> using namespace std; class Base { public: virtual ~Base() {} virtual void func() = 0; int base_; }; class SubLeft : virtual public Base { public: int subLeft_; }; class SubRight : virtual public Base { public: int subRight_; }; class Diamond : public SubLeft, public SubRight { public: void func() {} int diamond_; }; int main() { Diamond diamond; cout << "sizeof Base: " << sizeof(Base) << endl; cout << "sizeof SubLeft: " << sizeof(SubLeft) << endl; cout << "sizeof Diamond: " << sizeof(Diamond) << endl; cout << "base_ offset: " << (size_t)&diamond.base_ - (size_t)&diamond << endl; cout << "subLeft_ offset: " << (size_t)&diamond.subLeft_ - (size_t)&diamond << endl; return 1; } |
编译环境是vs2019 x64,项目属性 => C/C++ => Command Line中增加
1 | /d1reportSingleClassLayoutDiamond |
编译时输出
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 | 1>class SubLeft size(32): 1> +--- 1> 0 | {vbptr} 1> 8 | subLeft_ 1> | <alignment member> (size=4) 1> +--- 1> +--- (virtual base Base) 1>16 | {vfptr} 1>24 | base_ 1> | <alignment member> (size=4) 1> +--- 1>class Diamond size(56): 1> +--- 1> 0 | +--- (base class SubLeft) 1> 0 | | {vbptr} 1> 8 | | subLeft_ 1> | | <alignment member> (size=4) 1> | +--- 1>16 | +--- (base class SubRight) 1>16 | | {vbptr} 1>24 | | subRight_ 1> | | <alignment member> (size=4) 1> | +--- 1>32 | diamond_ 1> | <alignment member> (size=4) 1> +--- 1> +--- (virtual base Base) 1>40 | {vfptr} 1>48 | base_ 1> | <alignment member> (size=4) 1> +--- 1>Diamond::$vbtable@SubLeft@: 1> 0 | 0 1> 1 | 40 (Diamondd(SubLeft+0)Base) 1>Diamond::$vbtable@SubRight@: 1> 0 | 0 1> 1 | 24 (Diamondd(SubRight+0)Base) 1>Diamond::$vftable@: 1> | -40 1> 0 | &Diamond::{dtor} 1> 1 | &Diamond::func 1>Diamond::func this adjustor: 40 1>Diamond::{dtor} this adjustor: 40 1>Diamond::__delDtor this adjustor: 40 1>Diamond::__vecDelDtor this adjustor: 40 1>vbi: class offset o.vbptr o.vbte fVtorDisp 1> Base 40 0 4 0 |
运行输出
1 2 3 4 5 | sizeof Base: 16 sizeof SubLeft: 32 sizeof Diamond: 56 base_ offset: 48 subLeft_ offset: 8 |
refer to: https://blog.csdn.net/oracleot/article/details/5123657