X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=pygdb.vim;h=642b327f7c5d545bc5c1d431d395d88ce1967f50;hb=7c7da5bcd494d7a53b40952232a889f59c4dfbf2;hp=e505b0aca7c938994a9725403cbce21efa63526f;hpb=b7f4eaf787ec9c54f36cce00bb294a8be2a862c3;p=pygdb.git diff --git a/pygdb.vim b/pygdb.vim index e505b0a..642b327 100644 --- a/pygdb.vim +++ b/pygdb.vim @@ -1,4 +1,11 @@ -"shuber, 2008-06-08 +"pygdb.vim - pygtk interface to gdb in connection with (g)vim +" Maintainer: Stefan Huber + + +if !has('python') + echo "Error: Required vim compiled with +python" + finish +endif if ! exists("g:pygdb") @@ -16,6 +23,7 @@ import threading import vim import Configuration +import DbgTerminal @@ -27,7 +35,7 @@ clientcmd = "" execsign = None def gdbLaunch(): - global gdbterm, mainctrlwnd, statuswnd, gdbBps, clientcmd, gdbthread + global gdbBps, clientcmd clientcmd = vim.eval("input('Client commando: ', '%s')" % clientcmd).strip() @@ -38,11 +46,12 @@ def gdbLaunch(): #Add the breakpoints to the configuration conf = Configuration.Configuration() conf.load(".pygdb.conf") + conf.breakpoints = [] for bp in gdbBps: conf.addBreak(bp["file"], bp["lineno"], bp["cond"]) conf.store(".pygdb.conf") - vim.command("!python %s/pygdb.py %s &\n" % (pygdbdir, clientcmd)) + vim.command("!python %s/pygdb.py --vim-servername %s %s &\n" % (pygdbdir, vim.eval("v:servername"), clientcmd)) def gdbToggleBreakpoint(lineno=None, file=None): @@ -187,27 +196,7 @@ def gdbShowBreakpoints(): print "%(file)s:%(lineno)d" % bp -def getAbsPath(absfile, relfile): - """When an absfile is given and a relfile is given by - relative paths relative to absfile, determine the abs - path of relfile""" - - #Get directories except for "." parts - relsplit = filter(lambda x: x!=".", string.split(relfile, os.sep)) - #Get the directories of absfile withouth the trailing filename - abssplit = string.split(absfile, os.sep)[:-1] - - #Determine number of ".." and remove them - up=0 - while relsplit[0] == "..": - up += 1 - del relsplit[0] - del abssplit[-1] - - return string.join(abssplit + relsplit, os.sep) - -#Change to absolute path def toAbsPath(path): global clientcmd, cmdset @@ -221,8 +210,8 @@ def toAbsPath(path): #Get the dirs where executeable is in relcmd = string.split(clientcmd)[0] - abscmd = getAbsPath(getCurrentFile(), relcmd) - path = getAbsPath(abscmd, path) + abscmd = DbgTerminal.relToAbsPath(getCurrentFile(), relcmd) + path = DbgTerminal.relToAbsPath(abscmd, path) assert(path[0] == "/") @@ -233,8 +222,6 @@ def gdbLoadConfig(): global clientcmd, gdbBps, cmdset - - #Load configuration conf = Configuration.Configuration() conf.load(".pygdb.conf") @@ -247,6 +234,10 @@ def gdbLoadConfig(): for bp in conf.breakpoints: bp["file"] = toAbsPath( bp["file"] ) addBreakpoint(bp["file"], bp["lineno"], bp["cond"]) + + #Set the command from config + if conf.getCommand() != None: + clientcmd = conf.getCommand() #Set current execution line if conf.isCurrposSet(): @@ -254,6 +245,7 @@ def gdbLoadConfig(): setExecutionLine(file, conf.currlineno) else: delExecutionLine() + >> highlight ExecutionLine term=bold ctermbg=DarkGreen ctermfg=Black guibg=LightGreen guifg=Black