临时记录,后续完善,以免忘记。

值得学习或巩固的知识点

关于 C++11 新特性

defaulted 和 deleted 修饰函数
Deleted functions in C++11
对象移动
右值引用与转移语义
Range-based for 循环

Windows

Windows Path

  • Windows 调试器
    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe

Windows Command

  • 永久设置环境变量 setx
  • 查看系统版本 winver systeminfo wmic(已弃用)
    或者 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
  • wmic diskdrive list brief 列举磁盘驱动器:\\.\PHYSICALDRIVE0\\.\PHYSICALLDRIVE1

Windows API

Windows Service

  • Related API:OpenSCManagerCreateServiceOpenServiceControlServiceDeleteServiceRegisterServiceCtrlHandlerSetServiceStatusStartServiceCtrlDispatcher
  • Complete Service Sample

COM 编程

Component Object Model
https://www.microsoft.com/com/default.mspx

Microsoft RPC

基于 命名管道 和 tcp/ip

Thread Pooling

Synchronization Functions

Unhandled Exception

  • SetUnhandledExceptionFilter : Enables an application to supersede(紧接着…) the top-level exception handler of each thread of a process.
  • _set_invalid_parameter_handler : Sets a function to be called when the CRT detects an invalid argument.
  • _set_purecall_handler : Sets the handler for a pure virtual function call.
    RtlCaptureContext

MIDI MCI

Linux

函数妙用

命令行

  • .bash内部指令:在当前shell中执行指定的shell脚本。
  • source在当前shell环境下读取并执行指定脚本中的命令。
  • getopt 命令
    :: 表示该选项可有有 0 个或 1 个参数,短型时,选项与参数之间不能有空格,长型时,选项与参数之间需用等号连接。

调试技巧

  • gdb 使用手册。
  • gdb 生成调试信息参数:-g
  • gdb > target remote IP:PORT 进行远程调试。
  • add-symbol-file FILENAME ADDR 加载符号文件(本地文件),ADDR 为代码段地址,根据进程物理地址和符号文件代码段偏移地址计算而来。
  • strip 从带调试信息的可执行文件中删除调试信息,移出符号记录。
  • objcopy --only-keep-debug 从带调试信息的可执行文件中玻璃符号信息到独立的调试文件。
  • add-symbol-file TestDemo.dbgobjcopy 导出的符号文件加载到调试器。
  • handle 调试器对信号的处理,如:收到 SIGUSR2 不中断程序,handle SIGUSR2 nostop,其他:stopprintpassignore
  • info handle/signal 查看调试器对信号的处理情况。
  • show debug-file-directory 查看调试器加载调试信息的路径。
  • 从四个问题透析Linux下C++编译&链接

需要总结内容

C#

C/C++

Java

Python

XML

PDF

VisualStudio

BAT 批处理

DOS批处理中%~dp0等扩充变量语法详解

  • 系统应用:shutdownscreg

Docker

常用工具

  • CURL POST 传参
    curl -d @- http://hostname:port
    Linux: ctrl + D 一次不行就两次,前后输入 ENTER 试试。
    Windows: ctrl + Z 一次不行就两次,前后输入 ENTER 试试。
    命令行中输入EOF,即文本结束符
  • 调试信息查看器
    Debug View
  • 进程监视器
    Process Explorer
    Process Monitor
  • GPU 性能问题排查
    GPUView log.cmd 错误:此时不应有 4000 缺环境变量TRACE_LOGGING_MEMORY 扫描 systeminfo 查看内存时,遇到中文。
    (设置环境变量或者 set 临时变量)
    Vtune
    Nvidia NightSight
  • Alternative Data Stream(备用数据流)
    dir /r file/directory 查看文件是否有备用数据流
    streams64.exe -d file 删除指定文件的备用数据流
    PowerShell : Get-Content -Path filename -Stream streamname 可获取备用数据流的内容

算法

  • 局部敏感哈希
  • 字符串变形,可见范围,自定义基长度,同 Base64Base85 git 源码 base85.h base85.c)

网络协议

Tools

  • Windows CMD:pingnetstatarptracertroutenbtstattelnet

FTP

ICMP

PXE

  • PXE 网络装机环境搭建:DHCPTFTPHTTP

性能分析

性能优化

运维监控

Prometheus

  • 特性说明
    存储有限,将数据保存在本地,只监控近期数据变化,不适合大量数据存储。远程存储:OpenTSDBM3db
    数据并非 100% 可靠
    无权限管理系统,需额外上层管理系统配合支持。推荐 Grafana

  • PushGateway
    避免收集数据本身的jobinstance被覆盖:prometheus 配置文件中添加honor_labels: true

    1
    2
    3
    4
    # 未覆盖示例:
    some_metric{instance="some_instance",job="some_job"}
    # 被覆盖示例:
    some_metric{exported_instance="some_instance",exported_job="some_job",instance="localhost:9091",job="PushGateway"}

    防止 pushgateway 重启或宕机时丢失数据:-persistence.file-persistence.file

  • 其他

Zabbix

Open-FaIcon

留言