惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Check Point Blog
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
IT之家
IT之家
月光博客
月光博客
U
Unit 42
K
Kaspersky official blog
T
Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
云风的 BLOG
云风的 BLOG
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
Engineering at Meta
Engineering at Meta
Recorded Future
Recorded Future
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security @ Cisco Blogs
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Security Archives - TechRepublic
Security Archives - TechRepublic
Webroot Blog
Webroot Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Schneier on Security
S
Secure Thoughts
The Register - Security
The Register - Security
B
Blog RSS Feed
The Last Watchdog
The Last Watchdog
P
Palo Alto Networks Blog
爱范儿
爱范儿
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
C
Cisco Blogs
Spread Privacy
Spread Privacy
F
Full Disclosure
博客园 - 聂微东
T
The Blog of Author Tim Ferriss

博客园 - 享受工作,享受生活

Install hadoop on raspberry android 中国镜像 RubyGems 镜像 调试 android ndk 时, 用以下命令看挂死时调用栈 围棋术语中英文对照 ubuntu11.10+git+svn works 巴厘岛风景 Google 's panoramio 写在新年伊始 一张蛮有意思的图片:) 今天把我的TCC发给了第一个想要的人,期待结果中 生气时间不超过一天 今天终于体会到极速刹车的感觉了 :) 想要什么样的生活 触碰心灵34句(网上搜的,收藏一下) 在即将过去的一年里,你最怀念的事情是什么? 现在的国有单位 "多给自己一些时间 思考,不是忙碌,才能让自己更加进步" 看到一篇好文章 和大家分享《别让灵魂赶不上自己的脚步!》 无语
TortoiseSVN debugging hints 中文翻译
享受工作,享受生活 · 2012-08-21 · via 博客园 - 享受工作,享受生活

Debugging hints

Since TortoiseSVN is a shell extension it's not
as easy to debug as normal applications. The
TortoiseShell part is only a dll which is
loaded by the windows explorer. So the first
thing you need to do is:

因为TortoiseSVN是一个SHELL扩展,所以不能像普通程序一样调试, TortoiseShell 只是一个windows explorer 加载的一个动态连接库。 所以要做的就是

- register the TortoiseShell dll so that
  the windows explorer loads it. There are
  three files in the folder src\TortoiseShell
  with extension *.registry. Make a copy of
  those files and change the extension to
  *.reg. Then you have to edit those three
  files so that the paths in it reflects
  your source paths exactly.
  Now if you doubleclick on register.reg
  the debug version of the TortoiseSVN.dll
  gets registered. registerrelease.reg
  registers the release version of the
  TortoiseSVN.dll. Don't do it right now!
  Or just have TortoiseSVN installed and
  registered properly.

- 注册TortoiseShell以便windows explorer 可以加载它 ,  在src\TortoiseShell 文件夹有三个.registry 扩展名的文件,将文件扩展名改为.reg 修改文件中的路径和本地匹配。 双击register.reg  debug版本的 TortoiseSVN.dll 就注册上了。 

- Create the registry DWORD entry
  HKLM\Software\TortoiseSVN\DebugShell
  and set it to 1. This then forces the
  TortoiseStub dll to load the extension
  dlls from the same directory the test
  application starts. This means that if
  you then start e.g. TortoiseProc from
  directory 'debug' and TortoiseSVN.dll
  is also in the directory 'debug', that
  dll is loaded instead of the 'real'
  registered dll.

这一步使svn 加载程序所在路径的dll 文件, 而不是安装目录的dll 文件
- Start VS.NET and load the TortoiseSVN
  solution file. Set the TortoiseProc
  project as "startup project".
  In the properties page of the project,
  add the following command line:
  /command:createpatch /path:"path/to/wc"
  (substitute "path/to/wc" with a path
  to an existing working copy).
- Hit F5 in the VS.NET IDE (or start
  debugging via menu).
- Now you can set breakpoints and debug
  as you like.
- Click "Ok" in the create patch dialog, that
  will then open a "file save" dialog and
  this is where the shell extension dll
  is now loaded and can be debugged.
- After debugging, set the registry DWORD
  value back to 0 or remove it completely.

To debug the TortoiseProc part of TortoiseSVN
proceed as with any normal application.

To debug the TSVNCache exit the TSVNCache.exe
process and proceed as with any normal
application. Exiting TSVNCache.exe is necessary
because only one instance of TSVNCache may run
at a time. To exit the TSVNCache process set
HKCU\Software\TortoiseSVN\CacheTrayIcon to 1 and
call "Exit" in the context menu of the tray icon.