这篇文章介绍一下MacOS下GDB的安装与设定方法。在MacOS上使用LLDB可能会更方便一些,但是对于习惯gdb的用于以及LLDB无法完成的地方,GDB还是有很多优势的。

目录

  • 环境说明
  • 安装与确认
  • 调试使用
  • 常见问题与对应
    • 添加证书
    • 添加证书(命令行方式)
    • r命令后卡住
    • 其他问题
  • 参考内容

环境说明

  • 本文使用的环境信息如下所示:
liumiaocn:gdb liumiao$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.6
BuildVersion:   19G73
liumiaocn:gdb liumiao$
  • gcc版本信息
liumiaocn:gdb liumiao$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.0 (clang-1100.0.33.16)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
liumiaocn:gdb liumiao$

安装与确认

执行如下命令即可使用brew进行gdb的安装

执行命令:brew install gdb

  • 版本确认
liumiaocn:gdb liumiao$ gdb --version
GNU gdb (GDB) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
liumiaocn:gdb liumiao$

调试使用

liumiaocn:gdb liumiao$ gdb a.out
GNU gdb (GDB) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin19.5.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:<http://www.gnu.org/software/gdb/documentation/>.For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...
Reading symbols from /Users/liumiao/tt/gdb/a.out.dSYM/Contents/Resources/DWARF/a.out...
(gdb) b main
Breakpoint 1 at 0x100000c8c: file main.c, line 26.
(gdb) r
Starting program: /Users/liumiao/tt/gdb/a.out
[New Thread 0x2703 of process 8023]
[New Thread 0x1a03 of process 8023]
warning: unhandled dyld version (16)Thread 2 hit Breakpoint 1, main () at main.c:26
26      char input_length = 0;
(gdb)

常见问题与对应

添加证书

  • 现象: 提示Unable to find Mach task port for process-id信息,具体示例如下所示:
liumiaocn:gdb liumiao$ gcc -g main.c
liumiaocn:gdb liumiao$
liumiaocn:gdb liumiao$ gdb a.out
GNU gdb (GDB) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin19.5.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:<http://www.gnu.org/software/gdb/documentation/>.For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...
Reading symbols from /Users/liumiao/tt/gdb/a.out.dSYM/Contents/Resources/DWARF/a.out...
(gdb) b main
Breakpoint 1 at 0x100000cac: file main.c, line 24.
(gdb) b main.c:16
Breakpoint 2 at 0x100000c56: file main.c, line 16.
(gdb) r
Starting program: /Users/liumiao/tt/gdb/a.out
Unable to find Mach task port for process-id 35236: (os/kern) failure (0x5).(please check gdb is codesigned - see taskgated(8))
(gdb)
  • 对应方法
    打开启动台>>其他>>钥匙串访问>>证书助理>>创建证书


    设定证书相关内容

    注意设定保存位置为System,其余均可保持为缺省即可

    设定证书为Always Trust

    然后在命令行中执行如下命令即可
liumiaocn:gdb liumiao$ sudo killall taskgated
Password:
liumiaocn:gdb liumiao$ codesign -fs gdb_codesign /usr/local/bin/gdb
liumiaocn:gdb liumiao$

注意第2条命令执行时需要输入相应的用户名和密码, 然后重启系统


添加证书(命令行方式)

liumiaocn:cert liumiao$ security find-certificate -c gdb_codesign
keychain: "/Users/liumiao/Library/Keychains/login.keychain-db"
version: 512
class: 0x80001000
attributes:"alis"<blob>="gdb_codesign""cenc"<uint32>=0x00000003 "ctyp"<uint32>=0x00000001 "hpky"<blob>=0x731206D5E9DBB54C0CC76412400C3B9A4D5BE4DC  "s\022\006\325\351\333\265L\014\307d\022@\014;\232M[\344\334""issu"<blob>=0x30243115301306035504030C0C6764625F636F64657369676E310B300906035504061302434E  "0$1\0250\023\006\003U\004\003\014\014gdb_codesign1\0130\011\006\003U\004\006\023\002CN""labl"<blob>="gdb_codesign""skid"<blob>=<NULL>"snbr"<blob>=0x01 "subj"<blob>=0x30243115301306035504030C0C6764625F636F64657369676E310B300906035504061302434E  "0$1\0250\023\006\003U\004\003\014\014gdb_codesign1\0130\011\006\003U\004\006\023\002CN"
liumiaocn:cert liumiao$
liumiaocn:cert liumiao$
liumiaocn:cert liumiao$ security find-certificate -p -c  gdb_codesign | openssl x509 -checkend 0
Certificate will not expire
liumiaocn:cert liumiao$
liumiaocn:cert liumiao$ security find-certificate -p -c  gdb_codesign | openssl x509 -noout -text
Certificate:Data:Version: 3 (0x2)Serial Number: 1 (0x1)Signature Algorithm: sha256WithRSAEncryptionIssuer: CN=gdb_codesign, C=CNValidityNot Before: Sep 17 00:34:43 2020 GMTNot After : Sep 17 00:34:43 2021 GMTSubject: CN=gdb_codesign, C=CNSubject Public Key Info:Public Key Algorithm: rsaEncryptionPublic-Key: (2048 bit)Modulus:00:d6:b7:8b:e1:e9:57:0a:91:71:9b:65:84:c4:91:11:c7:27:f4:08:77:8b:17:f9:6f:4c:32:a3:bf:5b:3a:a1:10:80:e8:a8:6b:1a:cd:7f:d1:5f:cb:6d:df:53:59:a8:07:6e:7c:0a:e4:1d:ba:53:e1:bd:f8:0e:27:05:50:22:84:c7:3d:08:96:6f:03:d0:1e:d0:01:ef:63:f4:5e:1e:1e:a2:38:51:c9:9d:36:3f:3d:90:37:a3:a2:db:17:7b:c1:93:1b:10:2b:fa:2b:25:b5:64:71:31:b6:aa:72:79:cc:cb:e2:b5:5a:e1:2f:f9:09:ea:4f:c1:63:84:26:38:9f:1e:47:cd:9e:fb:fc:44:f2:02:50:b9:c2:49:8a:2c:1e:75:b0:0a:19:50:4a:34:17:f3:c4:cd:ec:b0:9c:cb:78:bb:1c:e7:e3:61:f4:2e:13:c2:5e:3a:b2:0d:c6:d6:ee:44:54:79:f4:7a:08:c5:f5:b7:b6:f7:88:b8:0b:72:8d:bf:c2:6f:a8:15:72:c0:46:79:75:72:63:84:0c:03:2c:8d:4c:b4:09:04:ad:be:8e:f7:78:f2:ea:b0:b2:7f:1f:ac:d1:a1:15:91:6c:90:71:76:d0:9a:a8:f7:0d:bf:24:36:fc:c0:26:7f:80:ee:63:44:3c:a4:47:2d:93:80:0dExponent: 65537 (0x10001)X509v3 extensions:X509v3 Key Usage: criticalDigital Signature, Key EnciphermentX509v3 Extended Key Usage: criticalE-mail ProtectionSignature Algorithm: sha256WithRSAEncryptionca:38:2b:43:52:3b:48:1a:66:ec:a9:dd:37:de:cf:12:d8:c1:e2:77:8a:fd:d7:5f:62:1c:1f:b9:16:3b:d5:d9:17:81:24:9d:a3:04:e3:9a:a7:40:98:5e:21:ba:94:4a:5d:2f:49:55:73:e9:b0:f3:cd:e5:a1:b4:78:55:59:74:b1:c0:f1:da:06:29:1a:50:48:d4:39:b0:2f:95:1c:41:10:38:ca:02:8e:f1:cb:37:2f:53:e8:cb:9f:29:9a:74:7f:06:92:22:f7:41:d5:1f:03:b9:46:3f:b4:22:bb:ef:33:85:79:ac:01:6a:db:12:65:ce:35:31:49:9f:47:5b:b7:c5:cd:17:aa:b7:a7:57:ed:49:51:9c:82:29:10:e4:fa:40:ce:d0:a2:e4:7e:10:92:0c:c7:f5:d8:2c:67:6f:c7:82:ac:d9:ff:aa:89:d1:72:0c:ba:5a:aa:0b:d9:14:35:13:51:89:90:7d:9e:5c:bb:1e:3c:65:05:58:fc:42:cf:62:9e:c9:33:e8:04:c5:78:f4:b5:c0:48:ec:84:d9:97:c4:8f:e0:0e:26:15:3b:24:6f:06:75:45:f4:3c:eb:22:bc:5e:b4:da:bb:56:99:c7:44:9d:e1:e5:19:98:14:c7:03:2b:67:ae:e8:d6:43:b7:33:85:9e:e0:5e:33:c2
liumiaocn:cert liumiao$
liumiaocn:cert liumiao$ security dump-trust-settings -d
Number of trusted certs = 5
Cert 0: kubernetesNumber of trust settings : 10Trust Setting 0:Policy OID            : SSLAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 1:Policy OID            : SSLAllowed Error         : Host name mismatchResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 2:Policy OID            : SMIMEAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 3:Policy OID            : SMIMEAllowed Error         : S/MIME Email address mismatchResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 4:Policy OID            : EAPAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 5:Policy OID            : IPSecAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 6:Policy OID            : Code SigningAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 7:Policy OID            : Unknown OID length 9, value { 2A 86 48 86 F7 63 64 01 14  }Allowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 8:Policy OID            : Apple X509 BasicAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 9:Allowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRoot
Cert 1: 税务电子证书一级根Number of trust settings : 10Trust Setting 0:Policy OID            : SSLAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 1:Policy OID            : SSLAllowed Error         : Host name mismatchResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 2:Policy OID            : SMIMEAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 3:Policy OID            : SMIMEAllowed Error         : S/MIME Email address mismatchResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 4:Policy OID            : EAPAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 5:Policy OID            : IPSecAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 6:Policy OID            : Code SigningAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 7:Policy OID            : Unknown OID length 9, value { 2A 86 48 86 F7 63 64 01 14  }Allowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 8:Policy OID            : Apple X509 BasicAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 9:Allowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRoot
Cert 2: www.devops.comNumber of trust settings : 9Trust Setting 0:Policy OID            : SSLAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustAsRootTrust Setting 1:Policy OID            : SSLAllowed Error         : Host name mismatchResult Type           : kSecTrustSettingsResultTrustAsRootTrust Setting 2:Policy OID            : SMIMEAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustAsRootTrust Setting 3:Policy OID            : SMIMEAllowed Error         : S/MIME Email address mismatchResult Type           : kSecTrustSettingsResultTrustAsRootTrust Setting 4:Policy OID            : EAPAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustAsRootTrust Setting 5:Policy OID            : IPSecAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustAsRootTrust Setting 6:Policy OID            : Code SigningAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustAsRootTrust Setting 7:Policy OID            : Unknown OID length 9, value { 2A 86 48 86 F7 63 64 01 14  }Allowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustAsRootTrust Setting 8:Policy OID            : Apple X509 BasicAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustAsRoot
Cert 3: kubernetesNumber of trust settings : 10Trust Setting 0:Policy OID            : SSLAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 1:Policy OID            : SSLAllowed Error         : Host name mismatchResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 2:Policy OID            : SMIMEAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 3:Policy OID            : SMIMEAllowed Error         : S/MIME Email address mismatchResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 4:Policy OID            : EAPAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 5:Policy OID            : IPSecAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 6:Policy OID            : Code SigningAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 7:Policy OID            : Unknown OID length 9, value { 2A 86 48 86 F7 63 64 01 14  }Allowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 8:Policy OID            : Apple X509 BasicAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 9:Allowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRoot
Cert 4: gdb_codesignNumber of trust settings : 9Trust Setting 0:Policy OID            : SSLAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 1:Policy OID            : SSLAllowed Error         : Host name mismatchResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 2:Policy OID            : SMIMEAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 3:Policy OID            : SMIMEAllowed Error         : S/MIME Email address mismatchResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 4:Policy OID            : EAPAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 5:Policy OID            : IPSecAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 6:Policy OID            : Code SigningAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 7:Policy OID            : Unknown OID length 9, value { 2A 86 48 86 F7 63 64 01 14  }Allowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRootTrust Setting 8:Policy OID            : Apple X509 BasicAllowed Error         : CSSMERR_TP_CERT_EXPIREDResult Type           : kSecTrustSettingsResultTrustRoot
liumiaocn:cert liumiao$
liumiaocn:cert liumiao$
liumiaocn:cert liumiao$ vi gdb-entitlement.xml
liumiaocn:cert liumiao$ codesign --entitlements gdb-entitlement.xml -fs gdb_codesign $(which gdb)
/usr/local/bin/gdb: replacing existing signature
liumiaocn:cert liumiao$

r命令后卡住

liumiaocn:gdb liumiao$ gcc -g main.c
liumiaocn:gdb liumiao$ gdb a.out
GNU gdb (GDB) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin19.5.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:<http://www.gnu.org/software/gdb/documentation/>.For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...
Reading symbols from /Users/liumiao/tt/gdb/a.out.dSYM/Contents/Resources/DWARF/a.out...
(gdb) b main
Breakpoint 1 at 0x100000c8c: file main.c, line 26.
(gdb) r
Starting program: /Users/liumiao/tt/gdb/a.out
[New Thread 0x1903 of process 7273]
  • 对应方法
    目前本文使用的Catalina的缺省terminal目前存在这个问题,伤未发现太好的办法,建议直接换成iterm2进行使用:https://www.iterm2.com/

其他问题

安装时已经提示,Sierra之后由于系统集成性保护SIP的缘故,需要在.gdbinit或者每次执行之前设定startup-with-shell 未off

On 10.12 (Sierra) or later with SIP, you need to run this:echo "set startup-with-shell off" >> ~/.gdbinit

参考内容

https://sourceware.org/gdb/wiki/PermissionsDarwin

GDB基础:MacOS上的GDB安装与设定相关推荐

  1. cgdb 调试_在MacOS上使用gdb(cgdb)调试Golang程序

    如果你在MacOS上使用GDB工具载入Golang程序时无法载入,这篇文章可以解决.本文不具体介绍调试的方法,网上的文章太多了就不赘述了. cgdb使用的是gdb的内核,方法和原理试用本文. 问题分析 ...

  2. MacOS上快速下载安装brew

    推荐大家使用国内镜像源,在MacOS上快速下载安装brew 复制下面这段命令到终端,进入自动安装脚步步骤,选择国内镜像源编号 1.中科大下载源 (推荐)2.清华大学下载源 3.北京外国语大学下载源 4 ...

  3. macos 查找文件_如何在Windows和macOS上查找和安装颜色配置文件以获取更准确的显示器...

    macos 查找文件 Color profiles, also known as ICC or ICM files, contain a collection of settings that hel ...

  4. pytorch macos_Windows,Linux和MacOS上的PyTorch安装

    pytorch macos The installation of PyTorch is pretty straightforward and can be done on all major ope ...

  5. Aria2 在 macOS 上的详细安装教程!

    安装和设置 Aria2 # 使用 Homebrew 安装 aria2 brew install aria2# 创建配置文件aria2.conf和空对话文件aria2.session mkdir ~/. ...

  6. python 安装xgboost_如何在macOS上为Python安装XGBoost?

    教程概述 本教程分为以下3个部分: 1.安装MacPorts: 2.构建XGBoost: 3.安装XGBoost. 注意:我在一系列不同的macOS版本上都是使用这个过程.本教程是在macOS Hig ...

  7. macos 上的各种下载软件安装方式

    不知道为什么,macos上的各种安装软件的工具都没有默认安装,如brew,且安装过程非常费劲. 这里终于找到一个中文的,一键安装脚本,特记录如下: 1.安装brew /bin/zsh -c " ...

  8. python下载安装教程mac-教程|如何在mac上为Python安装XGBoost!

    原标题:教程|如何在mac上为Python安装XGBoost! 摘要:XGBoost是一个开发非常快速和准确的梯度增强模型的库,它在Kaggle数据科学竞赛中被大量的kaggle选手选用,其中包括两个 ...

  9. python numpy库安装 mac_教程|如何在mac上为Python安装XGBoost!

    原标题:教程|如何在mac上为Python安装XGBoost! 摘要:XGBoost是一个开发非常快速和准确的梯度增强模型的库,它在Kaggle数据科学竞赛中被大量的kaggle选手选用,其中包括两个 ...

最新文章

  1. 准爸爸日记——20120502海淀妇幼建档续
  2. pybind 填充数组
  3. 爬虫python代码-Python爬虫入门(01) -- 10行代码实现一个爬虫
  4. 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 2 ) ★★
  5. Why with_indobjects is not available in product search
  6. python email模块写邮件_python常用模块email----创建简单的文本邮件并发送
  7. JavaScript 属性介绍
  8. 分账汇总少了一笔 和 对账和商户汇总比基础表少了一笔 问题处理方式
  9. Acer 4750 安装黑苹果_自己安装黑苹果,其实黑苹果也没那么难~
  10. C#.Net工作笔记015---C#中Decimal类型四舍五入_小数点截位
  11. python学习——正则表达项目
  12. 可重定位的ELF文件
  13. java超类_Java——超类和子类对象之间的转换
  14. http://wsj356428476.iteye.com/blog/1655032
  15. java学习第八天内容
  16. 2023年上海国际车展展中新车报告
  17. hdu 4735 Little Wish~ lyrical step~(DLX)
  18. 分享一下自己的用的几个网站 嘿嘿嘿
  19. 程序猿出马,鲁迅终于不用背黑锅了?!
  20. linux格式化硬盘文件恢复,Linux格式化后数据恢复

热门文章

  1. kolin学习笔记:非空类型与可空类型
  2. 史上最全Java面试题(带全部答案)
  3. Java面试题36题快问快答
  4. 提高看log效率的小工具
  5. Java面试题以及答案---FastDFS
  6. 今天终于知道了陕西十大怪是哪十大!
  7. (专升本)Excel(Excel 2010主要功能、工作簿与工作表操作)
  8. ChatGPT应用场景
  9. 将雪豹系统升级为10.6.7以及xcode_4.2_and_ios_5_sdk_for_snow_leopard安装
  10. Linux数据盘和系统盘的查看