上次文章说的主要是我自己用C的搞法。。鉴于好多人用Pascal,然后我刚刚Q上Assist了一次~ 就贴一下啊:
(原帖:http://blog.qooza.hk/phoeagon?eid=18363884&bpage=)
说着说着觉得我有点啰嗦。。。一般online 操作协助都要特别具体仔细耐心的这种~ 从来没assist过像Ricky之类厉害的牛~ 故语气如有不妥大家忽略。。
Ricky&Bomb [time concealed]
....
phoeagon [time concealed]
你是回复我哪个?
Ricky&Bomb [time concealed]
只是召唤你出来
Ricky&Bomb [time concealed]
教我用那个notepad++调试程序
phoeagon [time concealed]
你会不会gdb啊?
Ricky&Bomb [time concealed]
不会
phoeagon [time concealed]
不会请先看我的blog吧~
Ricky&Bomb [time concealed]
在哪里
phoeagon [time concealed]
我找link出来~
phoeagon [time concealed]
我整一篇notepad++设置在:
http://blog.qooza.hk/phoeagon?eid=18363884&bpage=
phoeagon [time concealed]
里面有个快速gdb入门~
Ricky&Bomb [time concealed]
我正在看
phoeagon [time concealed]
基本上就只用到里面的start,continue,break,print,display,quit
phoeagon [time concealed]
哦,next和step要
Ricky&Bomb [time concealed]
我想知道在哪里按出个gdb
phoeagon [time concealed]
cmd里面
phoeagon [time concealed]
敲gdb,看有没有先
phoeagon [time concealed]
直接敲~
Ricky&Bomb [time concealed]
好像有
phoeagon [time concealed]
gdb在fp的安装目录里有~
phoeagon [time concealed]
okay~
Ricky&Bomb [time concealed]
so
phoeagon [time concealed]
但是命令行太难看~
phoeagon [time concealed]
so你想知道gdb还是知道npp设置?
Ricky&Bomb [time concealed]
notepad++里怎么搞出个gdb
phoeagon [time concealed]
okay,打开npp~
Ricky&Bomb [time concealed]
npp在哪里
phoeagon [time concealed]
npp=notepad ++
phoeagon [time concealed]
p=plus
phoeagon [time concealed]
@ @
Ricky&Bomb [time concealed]
哦哦
Ricky&Bomb [time concealed]
and then
phoeagon [time concealed]
然后,你也试试cmd里敲fpc
phoeagon [time concealed]
有东西出来就好~
Ricky&Bomb [time concealed]
有
phoeagon [time concealed]
好,在npp里选择插件~NppExec
phoeagon [time concealed]
有一个execute命令~
Ricky&Bomb [time concealed]
弹出个不知名物
phoeagon [time concealed]
一个输入窗口?
Ricky&Bomb [time concealed]
是
Ricky&Bomb [time concealed]
是不是输入个变量
phoeagon [time concealed]
先输入这个,然后等我查证一下(我自己设的不是freepascal编译)
SET obj = $(CURRENT_DIRECTORY)\$(NAME_PART)
NPP_SAVE
fpc "$(FULL_CURRENT_PATH)"
cmd /c pause
NPP_CONSOLE 0
phoeagon [time concealed]
SET obj = $(CURRENT_DIRECTORY)\$(NAME_PART)
NPP_SAVE
fpc -g "$(FULL_CURRENT_PATH)"
cmd /c pause
NPP_CONSOLE 0
(此处较原聊天记录有出入…… 我错了,把-g放到后面~ 此处已更正)
phoeagon [time concealed]
这样子
phoeagon [time concealed]
粘贴进去~
phoeagon [time concealed]
然后现在随手打一个短程序pas存起来测试。
Ricky&Bomb [time concealed]
然后
phoeagon [time concealed]
然后,你的程序存好了没?
Ricky&Bomb [time concealed]
好了
phoeagon [time concealed]
存好了,那个粘贴进去了,就点击ok试一次,看编译是否正常
Ricky&Bomb [time concealed]
好了
phoeagon [time concealed]
正常吗?
Ricky&Bomb [time concealed]
相当于个F9吧
phoeagon [time concealed]
好,现在再打开execute一次,点击Save,在左边弄个好看的命令名,叫Compile
Ricky&Bomb [time concealed]
然后
phoeagon [time concealed]
(save之前确认框里确实是那个SET ob....脚本)
phoeagon [time concealed]
好,现在编译弄好了(快捷键等一下再说~)
phoeagon [time concealed]
好,同样的方法,execute里save一段脚本:
SET obj = $(CURRENT_DIRECTORY)\$(NAME_PART)
//ECHO run | gdb $(obj).exe
$(obj).exe
cmd /c pause
NPP_CONSOLE 0
储存为Run,这是直接运行
phoeagon [time concealed]
再save一段,叫GDB(终于~)
SET obj = $(CURRENT_DIRECTORY)\$(NAME_PART)
gdb "$(obj).exe"
NPP_CONSOLE 0
phoeagon [time concealed]
好了没?
Ricky&Bomb [time concealed]
好啦
phoeagon [time concealed]
都运行过没问题是吧~
Ricky&Bomb [time concealed]
然后关于那个文件输入输出怎么办
phoeagon [time concealed]
好,点击插件-nppexec-advanced options
phoeagon [time concealed]
什么文件输入输出~?
Ricky&Bomb [time concealed]
assign
reset
close
phoeagon [time concealed]
我一般自己写assign、reset、close什么的~
phoeagon [time concealed]
然后run那一个可以手工输入数据
phoeagon [time concealed]
assign什么会自动在初始目录找啊~
Ricky&Bomb [time concealed]
问题是我还没输输入数据
phoeagon [time concealed]
advanced options找到没有?
左下角找到Menu Item,设定一个script和对应的item name
phoeagon [time concealed]
你是用什么运行?
phoeagon [time concealed]
还是说你没建立*.in?
Ricky&Bomb [time concealed]
是
phoeagon [time concealed]
那你assign啥就ctrl+n新建个文件输入嘛~
Ricky&Bomb [time concealed]
哦
phoeagon [time concealed]
如果不用文件输入输出就直接在run里打,不过gdb貌似不是很支持~
phoeagon [time concealed]
menu item找到没有~
Ricky&Bomb [time concealed]
恩
phoeagon [time concealed]
associated script里面找到你的gdb,在上面item name里输入gdb,点击左边add/Modify
phoeagon [time concealed]
run和compile依此类推
Ricky&Bomb [time concealed]
and。。。
phoeagon [time concealed]
搞定了之后,点击okay,退回来,到插件-nppexec菜单里面,确认找到了你的命令项run/compile/gdb
phoeagon [time concealed]
如果没有试着重新开一遍notepad++
Ricky&Bomb [time concealed]
有
phoeagon [time concealed]
点击设置-管理快捷键
phoeagon [time concealed]
在上面找到plugin command项
phoeagon [time concealed]
在下拉菜单中找到你的compile/run/gdb (应该和exec什么在一起)
Ricky&Bomb [time concealed]
然后
Ricky&Bomb [time concealed]
然后
phoeagon [time concealed]
然后双击那一项,设置快捷键
phoeagon [time concealed]
三个设置完重启notepad++,就可以用快捷键调用这些命令了~
phoeagon [time concealed]
可以调用吧?
Ricky&Bomb [time concealed]
有了
phoeagon [time concealed]
okay,接下来就是随便n几下~ gdb会自动提示当前的语句行
phoeagon [time concealed]
然后想知道多少行就直接看notepad++了
phoeagon [time concealed]
o,等一下~
phoeagon [time concealed]
选中 插件-nppexec-follow ¥(Current_directory)
phoeagon [time concealed]
然后就可以用gdb了
Ricky&Bomb [time concealed]
哦
phoeagon [time concealed]
(本来也可以用,不过不设置的话程序找不到你的*。in文件)
phoeagon [time concealed]
好,现在gdb需要帮助吗?
Ricky&Bomb [time concealed]
怎么设置变量
phoeagon [time concealed]
watch吗?
Ricky&Bomb [time concealed]
是
phoeagon [time concealed]
如果你只要看一次,就print x
phoeagon [time concealed]
如果你一直监视,就display x
phoeagon [time concealed]
display的话,顺便会给你一个号码display #1之类的
phoeagon [time concealed]
这是用来undisplay 删除的
phoeagon [time concealed]
display可以简写成disp
Ricky&Bomb [time concealed]
[some pic used to be here]
phoeagon [time concealed]
你把完整的gdb记录copy来
Ricky&Bomb [time concealed]
[some pic used to be here]
phoeagon [time concealed]
先close掉那个~然后你试着把compile的脚本改成"
"SET obj = $(CURRENT_DIRECTORY)\$(NAME_PART)
NPP_SAVE
fpc -g "$(FULL_CURRENT_PATH)"
cmd /c pause
NPP_CONSOLE 0
“(在execute窗口里改,然后save一次)
[sorry again]
phoeagon [time concealed]
再编译一遍,做gdb~
phoeagon [time concealed]
(如果你喜欢也可以把编译命令放在run和gdb前面,让它每次都重新编译一遍)
phoeagon [time concealed]
就这一句:fpc -g "$(FULL_CURRENT_PATH)" 放到别的什么$(obj)还是gdb ...前面
phoeagon [time concealed]
好,那个问题解决了否?
Ricky&Bomb [time concealed]
好了
phoeagon [time concealed]
好,还有遇到啥奇怪的问题吗?
Ricky&Bomb [time concealed]
那个命令缩写
phoeagon [time concealed]
其实就大概随手打前面几个字母
phoeagon [time concealed]
如果对就对,不对一般会提示有歧义
phoeagon [time concealed]
我一般这么省:
phoeagon [time concealed]
start sta
print print (print不好省)
next n
step s
phoeagon [time concealed]
break b
display disp
finish fin
phoeagon [time concealed]
一般就够了~
phoeagon [time concealed]
quit就q
Ricky&Bomb [time concealed]
哦
phoeagon [time concealed]
如果临时那个命令很奇怪要看一下就help +命令
phoeagon [time concealed]
help finish等
phoeagon [time concealed]
或者search the fucking web
phoeagon [time concealed]
(STFW)俗称
Ricky&Bomb [time concealed]
最后膜拜下phoeagon大牛
phoeagon [time concealed]
膜拜bomb神牛
|