Hi,
I've just started to use JDE to debug. When I ran into an uncaught exception,
I was able to see the call stacks via the jdb "where" command. As I moved
up/down the stack using the up or down commands, I anticipated to see the
corresponding source code file displayed with an arrow pointing to the right
line but I didn't see that happening. Is this behavior expected or I don't
have JDE set up correctly.
Thanks for the help.
Allen Hsu
IBM Corp.
Host platform: NT 4.5
JDE Version 2.1.5
Emacs Version: 20.6.1
My .emacs file:
;; .emacs file for win32 GNU Emacs
;;
;; Allen Hsu
;; Created: January 27, 1998
;; Last modified: Time-stamp: <2000-05-22 12:24:09 allenh>
;;
(setq debug-on-error t)
;; Remove vertical scroll bar
(toggle-scroll-bar -1)
;(setq default-major-mode 'text-mode)
(setq-default tab-width 4)
(load "gin-mode.elc")
(setq text-mode-hook '(lambda () (auto-fill-mode 1) (gin-mode 1)(setq
indent-tabs-mode nil)))
(setq-default fill-column 72)
(setq-default find-file-run-dired t)
;; Wrap lines that are longer than the width of the window.
(setq-default truncate-lines nil)
(setq-default truncate-partial-width-windows nil)
(setq-default teach-extended-commands-p t)
; For mail
; have mail aliases expand as abbrevs, as soon as you type them in.
(setq-default mail-self-blind t) ; Insert BCC to self in messages to
be sent
(setq-default mail-yank-prefix "> ");
(setq-default mail-from-style 'angles)
;; Meke gin-mode to recognize - + . * # as the list bullet.
(setq-default gin-left-hang-indent-re
"\\s
*\\([-+.*#]\\|[(<]?[0-9]+[.:)>]?\\|[(<]?[0-9]*[a-zA-Z@_-]+[0-9]*[:)>]\\|[a-zA
-Z][.]\\)\\s +")
;; How to read the above regular expression (regexp)
;; \\ means backslash in regexp, so \\| means \| in regexp, etc.
;; "\\s *" - a regular expression matches 0 or more white space
;; "\\(" - beginning of a group construct, "\\)" - end of a group construct
;; "\\|" - means OR
;; So what this regexp says is that the left hanging indent of a line can be
;; zero or more white space followed by a group of strings that is
;; one of the '-', '+', '.', '*', '#' characters
;; OR
;; a string composed of
;; zero or one of '(' or '<' followed by
;; one or more digits followed by
;; one of the '.', ':', ')' '>' characters
;; OR
;; a string composed of
;; zero or one '(' followed by
;; zero or more digits
;; one or more alphabets and '@' followed by
;; one of the ':' or ')' character
;; OR
;; a string composed of
;; a single alphabet followed by
;; the '.' character
;; and followed by one or more white space.
;;
;; If you put a time stamp template anywhere in the first 8 lines of a file,
;; it can be updated every time you save the file. See the top of
;; time-stamp.el for a sample. The template looks like one of the following:
;; Time-stamp: <>
;; Time-stamp: " "
;; The time stamp is written between the brackets or quotes, resulting in
;; Time-stamp: <95/01/18 10:20:51 gildea>
;; Here is an example that puts the file name and time stamp in the binary:
;; static char *time_stamp = "sdmain.c Time-stamp: <>";
;; Enable time-stamp on file.
(add-hook 'write-file-hooks 'time-stamp)
;; Display the full pathname for the buffer on the frame title area.
;; "M-x describe-variable mode-line-format" to see all the available
;; %-constructs for displaying various information.
(setq-default frame-title-format " %f")
;; Display day, date, and time as well as line number in the mode line
;;
(setq display-time-day-and-date t)
(display-time)
(setq line-number-mode t)
(setq load-path
(nconc '(
"d:/emacs-20.6/site-lisp/jde-2.1.5"
)
load-path))
(load "cc-mode.elc")
(defconst my-c-style
'((c-tab-always-indent . t)
(c-comment-only-line-offset . 0)
(c-comment-continuation-stars . "** ")
(c-hanging-comment-starter-p . nil)
(c-hanging-comment-ender-p . nil)
(c-hanging-braces-alist . ((substatement-open after)
(brace-list-open)))
(c-hanging-colons-alist . ((member-init-intro before)
(inher-intro)
(case-label after)
(label after)
(access-label after)))
(c-cleanup-list . (scope-operator
empty-defun-braces
defun-close-semi))
(c-offsets-alist . ((arglist-close .
c-lineup-arglist)
(access-label . 0)
(substatement-open . 0)
(case-label . 2)
(statement-case-intro . 2)
(block-open . 0)
(knr-argdecl-intro . -)))
(c-echo-syntactic-information-p . t)
)
"My C Programming Style")
;; Customizations for all of c-mode, c++-mode, and objc-mode
(defun my-c-mode-common-hook ()
;; add my personal style and set it for the current buffer
(c-add-style "PERSONAL" my-c-style t)
(c-set-offset 'substatement-open 0)
;; offset customizations not in my-c-style
(c-set-offset 'member-init-intro '++)
;; other customizations
(setq tab-width 4)
;; this will make sure spaces are used instead of tabs
;indent-tabs-mode nil)
;; we like auto-newline and hungry-delete
(c-toggle-auto-hungry-state 1)
;; keybindings for C, C++, and Objective-C. We can put these in
;; c-mode-map because c++-mode-map and objc-mode-map inherit it
(define-key c-mode-map "\C-m" 'newline-and-indent)
)
;; the following only works in Emacs 19
;; Emacs 18ers can use (setq c-mode-common-hook 'my-c-mode-common-hook)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
;; JDE package
(require 'jde)
(setq jde-web-browser "netscape")
;(setq jde-doc-dir "c:/jdk1.1.5/docs/")
;(jde-db-set-source-paths "c:/jdk1.1.5/src/")
;; Use bash as the shell mode shell
(setq shell-file-name "c:/mksnt/sh.exe")
(autoload 'shell-mode "shell-mode" "Shell mode" t)
(setq win32-quote-process-args t)
(setq shell-command-switch "-c")
;; In shell mode complete directories with "/" instead of "\"
;; Allegedly will be fixed in 19.35
(add-hook 'shell-mode-hook
'(lamda()(setq comint-completion-addsuffix '("/" . "")))
; '(lamda()(setq comint-completion-addsuffix t))
t)
;; Enable global-font-lock mode
(cond ((fboundp 'global-font-lock-mode)
;; Turn on font-lock in all modes that support it
(global-font-lock-mode t)
;; Maximum colors
(setq font-lock-maximum-decoration t)
;; Customize face attributes
(setq font-lock-face-attributes
;; Symbol-for-Face Foreground Background Bold Italic Underline
'((font-lock-comment-face "DarkGreen")
(font-lock-string-face "Sienna")
(font-lock-keyword-face "RoyalBlue")
(font-lock-function-name-face "Blue")
(font-lock-variable-name-face "Black")
(font-lock-type-face "Black")
(font-lock-reference-face "Purple")))
;; Create the faces from the attributes
; (font-lock-make-faces)
))
;; font-lock-make-faces doesn't seem to apper in 20.3.1 so the
;; above doesn't work. Use the following instead.
;;
(set-face-foreground 'font-lock-comment-face "Firebrick")
(set-face-foreground 'font-lock-string-face "Sienna")
(set-face-foreground 'font-lock-keyword-face "Magenta")
(set-face-foreground 'font-lock-function-name-face "Red")
(set-face-foreground 'font-lock-variable-name-face "MediumBlue")
(set-face-foreground 'font-lock-type-face "DarkOrchid")
;(set-face-foreground 'font-lock-reference-face "DarkGreen")
;; Faces for highlighting.
;;
;(set-face-background 'highlight "Wheat")
(set-face-foreground 'highlight "Red")
(set-face-background 'region "DarkTurquoise")
;; Functions and key bindings for setting tab width.
;;
(defun set-tabwidth-4 ()
"Set current buffer's tab-width to 4."
(interactive)
(setq tab-width 4)
(recenter))
(global-set-key "\M-4" 'set-tabwidth-4)
(defun set-tabwidth-8 ()
"Set current buffer's tab-width to 8."
(interactive)
(setq tab-width 8)
(recenter))
(global-set-key "\M-8" 'set-tabwidth-8)
;; Setup for printing on Windows NT.
;;
(require 'ps-print)
(setq ps-paper-type 'letter)
(setq ps-lpr-command "c:\\\\winnt\\\\system32\\\\print.exe")
(setq ps-font-size 9.5)
; the printer name
(setq ps-lpr-switches '("/D:\\\\\\\\BUS1\\\\qms55"))
; a tmp spool file
(setq ps-lpr-buffer "c:\\\\temp\\\\psspool.ps")
(defun nt-ps-print-buffer-with-faces ()
(interactive)
(ps-print-buffer-with-faces ps-lpr-buffer)
(shell-command
(apply 'concat (append (list ps-lpr-command " ")
ps-lpr-switches
(list " " ps-lpr-buffer))))
)
(defun nt-ps-print-buffer ()
(interactive)
(ps-print-buffer ps-lpr-buffer)
(shell-command
(apply 'concat (append (list ps-lpr-command " ")
ps-lpr-switches
(list " " ps-lpr-buffer))))
)
(defun nt-ps-print-region ()
(interactive)
(ps-print-region (point) (mark))
(shell-command
(apply 'concat (append (list ps-lpr-command " ")
ps-lpr-switches
(list " " ps-lpr-buffer))))
)
(define-key global-map "\C-x\\" 'nt-ps-print-buffer)
(global-set-key "\C-t" 'goto-line)
;; For Rmail
; Outgoing mail
(setq user-full-name "Allen Hsu")
(setq user-mail-address "[EMAIL PROTECTED]")
(setq smtpmail-default-smtp-server "snipyr.or.pyramid.com")
(setq smtpmail-local-domain nil)
(setq send-mail-function 'smtpmail-send-it)
(load-library "smtpmail")
; Incoming mail
(setenv "MAILHOST" "snipyr.or.pyramid.com")
(setq rmail-primary-inbox-list '("po:allenh") rmail-pop-password-required t)
(setq-default rmail-delete-after-output t)
;(setq rmail-mode-hook '(lambda () (rmail-mode-menu-setup) (auto-fill-mode
1)))
;(setq rmail-mode-hook '(lambda () (auto-fill-mode 1)))
(add-hook 'mail-setup-hook 'mail-abbrevs-setup)
(global-set-key "\C-xc" 'compile)
(put 'eval-expression 'disabled nil)
;; Enable show-paren mode
(show-paren-mode 1)
;; For PC keyboard
(global-set-key [home] 'beginning-of-line)
(global-set-key [end] 'end-of-line)
(custom-set-variables
'(jde-compile-option-depend nil)
'(jde-compile-option-debug (quote ("all" (t t t))))
'(jde-run-application-class "com.ibm.pmc.client.pmcserver.CimomStuffer")
'(jde-compile-option-depend-switch (quote ("-depend")))
'(jde-compile-option-deprecation t)
'(jde-db-startup-commands (quote
("com.ibm.pmc.client.pmcserver.CimomStuffer")))
'(jde-db-source-directories (quote ("d:/opencimom/cimom/")))
'(jde-enable-abbrev-mode t)
'(jde-db-option-verbose (quote (nil nil nil)))
'(jde-compile-option-verbose nil))
(custom-set-faces
'(font-lock-string-face ((((class color) (background light)) (:foreground
"Sienna")))))