Few points: improvement, bugs...

Massimo Morin mmorin at schedsys.com
Thu Oct 14 19:27:09 BST 1999


Hi,
	I started porting one of my project (multilibrary) to kdevelop.
These are some problem I found today.... more to come in the next
hours/days.
Cheers

Max
----------------
Question: is better I work with the Head branch (the 1.0 version)
or the version for kde2...
It seems the second is going to have all the cutting edge features, but
of course it is going to be more instable than the current one (even
if ... well the 1.0 crashes too....)

-----------------------------
These points apply to snapshot kdevelop 19991013-A
I'm using RH5.1 kde 1.1.2 qt 1.44 on a PII400

o Why the cursor is a watch when inside the class browser??

o Order on the file dialog (eg open project), the sort is alphabetical
  case insensitive (eg kde, Mail, master, MIT), but in the include
  file into project, that file dialog the sort is alphabetical case
  SENSITIVE (so Mail, MIT, kde, master ...)
   It doesn't matter wich one you choose but BE CONSISTENT....

o The "include file into project", I'd like to have the behavior of the
  list to accept click, ctrl-click and shift-click as usual (extended
  mode)

o The "include file into project", I'd like when I scroll down with
  the mouse (licke clicking on a file name) the window scrool
  too. Instead now I have to move to the scroll bar for doing that.

o The "include file into project", I'd like to have proper filters
  like "cpp files" "h files" "cpp + c" " cpp + c + h" "all files"
  [Fix:
../kdevelop/caddexistingfiledlg.cpp:176:  QStrList files(
QFileDialog::getOpenFileNames(0,QDir::homeDirPath(),this,i18n("Source
File(s)...")) );
  change the 0 into the list of the filter you want: I could have done
  it, but I don't know how the filter list works :( next time (very
soon!)]

o Removing a file from a project: why not allowing multiple selection
  of files from RFV? In that way I can delete all I want!
  BTW: it is rescanning the whole project when I delete a file, so in
  this case I have to rescan the project n times if  I remove n
  files.... and why is it closing/refolding the tree view? At least
  let it open....

o when you remove a file from the project it should be removed from
  the editor too (if it is edited). In that case you do not have
  annyoing messages from the autosaver "file does not exists"

o On this snapshot it doesn't create the libxxx.a file. Did someone
  turned it off??? Actually I'm creating a bunch of library with empty
  main.c so....
  As I wrote to Bernd:
> BTW is there a way for specifying where to put the objects and the
> resulting library AND the executable???
> In my situation I have the same ource code shared on different platform
> (Linux (various flavors), HP-Ux, Solaris, Aix....) so I need to separate
> the objects from the source (the src dir is NFS-ed but the bin and lib
> and obj dir are local on the machine I'm in use)

o When I set the compilation options in a C++ project they are set
  only for the g++ and not for gcc.
  It could be neat to have the possiblity to set different
  options/flags for the 2 cases... and why not separating
  precompilation from compilation???
  Ok, Ok I look to the generated makefile:

DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I..
CPPFLAGS = 
LDFLAGS =   
LIBS = 
net_OBJECTS =  NetMessage.o NetConn.o tty.o ipcnet.o ipc.o buffio.o \
TCPListener.o TCPClient.o IOBuffer.o main.o
net_DEPENDENCIES = 
net_LDFLAGS = 
CXXFLAGS =  -O0 -g3 -Wall   -I../../basics -I../../cpsupport 
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS)
CXXLINK = $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@
CFLAGS = -g -O2
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON =  Makefile.am Makefile.in

What I see here is:
CPPFLAGS is set to be empty (???)
CXXLINK misses CPPFLAGS (I could be wrong here)
CFLAGS  dunno who set this: basically it has no sense
COMPILE why is it including the CPPFLAGS??? This is suppose to be the
gcc line....


------------- BUGS SESSION -----------------
o don't remembre if I said on previous email, but kdevelop crash on
exit:
Program received signal SIGSEGV, Segmentation fault.
0x4012c66c in QGList::findRef ()

o SIGSEGV while including existing files into a project: it happens
  randomly, and I dunno how to fix this (do you want the core????): 
 As far as I can tell it happens the second time I try to add files to
the project. Does the member process need to be reset after the first
loading????
Maybe...

Program received signal SIGSEGV, Segmentation fault.
#0  0x8541c49 in ?? ()
#1  0x40568494 in KShellProcess::start ()
#2  0x809046d in CKDevelop::slotAddExistingFiles (this=0x837eb88) at
ckdevelop_project.cpp:354
#3  0x4010d577 in QObject::activate_signal ()
#4  0x4011be3c in QSingleShotTimer::event ()
#5  0x400ece87 in QApplication::notify ()
#6  0x401819b7 in qt_activate_timers ()
#7  0x40180402 in QApplication::processNextEvent ()
#8  0x40180e9d in QApplication::enter_loop ()
#9  0x401801c9 in QApplication::exec ()
#10 0x80771c1 in main (argc=1, argv=0xbffff5d4) at main.cpp:82
  ckdevelop_project.cpp
  354       process.start(KProcess::Block,KProcess::AllOutput); //
blocked because it is important  
The contents of process is the following, but I dunno if it matters
  (BTW process.in contains weird numbers....):
(gdb) print process
$1 = {<KProcess> = {<QObject> = {isSignal = 0, isWidget = 0, hiPriority
= 0, pendTimer = 0, pendEvent = 0, blockSig = 0, static metaObj =
<optimized out>, objname = 0x0, parentObj = 0x0, childObjects = 0x0,
connections = 0x83de138, senderObjects = 0x85165b8, eventFilters = 0x0,
sigSender = 0x853b370, _vptr. = 0x405948dc <KShellProcess virtual
table>}, static metaObj = <optimized out>, arguments = {<QStrListBase> =
{<QGList> = {<QCollection> = {del_item = false, _vptr. = 0x824e55c
<QStrList virtual table>}, firstNode = 0x8537a80, lastNode = 0x8538818,
curNode = 0x8538818, curIndex = 3, numNodes = 4, iterators = 0x0}, }, dc
= true}, run_mode = Block, runs = true, pid = 15329, status = 0, out =
{8, 9}, in = {137913712, 137914112}, err = {10, 11}, innot = 0x0, outnot
= 0x853b370, errnot = 0x8551128, communication = AllOutput, input_data =
0x0, input_sent = 0, input_total = 0}, static metaObj = <optimized out>,
shell = 0x84bbdd0 "/bin/bash"}
(gdb) 
  
*this is huge ...

(gdb) p *this
$3 = {<KTMainWindow> = {<QWidget> = {<QObject> = {isSignal = 0, isWidget
= 1, hiPriority = 0, pendTimer = 0, pendEvent = 1, blockSig = 0, static
metaObj = <optimized out>, objname = 0x0, parentObj = 0x0, childObjects
= 0x837aea0, connections = 0x8375ac8, senderObjects = 0x8375108,
eventFilters = 0x8369210, sigSender = 0x8465d34, _vptr. = 0x82266dc
<CKDevelop virtual table>}, <QPaintDevice> = {static dpy = <optimized
out>, hd = 37748751, devFlags = 1, static x_display = <optimized out>,
static x_screen = <optimized out>, static x_depth = <optimized out>,
static x_cells = <optimized out>, static x_colormap = <optimized out>,
static x_defcmap = <optimized out>, static x_visual = <optimized out>,
static x_defvisual = <optimized out>, _vptr. = 0x82266c0
<CKDevelop::QPaintDevice virtual table>}, static metaObj = <optimized
out>, winid = 37748751, flags = 1548549, frect = {x1 = 125, y1 = 0, x2 =
1244, y2 = 984}, crect = {x1 = 145, y1 = 40, x2 = 1224, y2 = 964},
bg_col = {static color_init = <optimized out>, static globals_init =
<optimized out>, static lalloc = <optimized out>, pix = 52791, rgbVal =
12437198}, pal = {data = 0x837b258}, fnt = {d = 0x8376088, static
defFont = <optimized out>, _vptr. = 0x401c86b0 <QFont virtual table>},
curs = {data = 0x8344e20}, extra = 0x836d790, focusChild = 0x0, static
mapper = <optimized out>}, static metaObj = <optimized out>, view_top =
82, view_bottom = 907, view_left = 0, view_right = 1080, static
memberList = <optimized out>, toolbars = {<QGList> = {<QCollection> =
{del_item = false, _vptr. = 0x404f55b8 <QListT<KToolBar> virtual
table>}, firstNode = 0x83b4840, lastNode = 0x841e658, curNode =
0x841e658, curIndex = 2, numNodes = 3, iterators = 0x0}, }, kmainwidget
= 0x83801a0, kmenubar = 0x83a59e8, kstatusbar = 0x83cd540,
kmainwidgetframe = 0x837ff10, borderwidth = 0, localKill = false},
static metaObj = 0x836bbc0, file_menu = 0x83a6870, recent_projects_menu
= 0x83ab200, edit_menu = 0x83a7f40, view_menu = 0x83a99a0,
bookmarks_menu = 0x83afdf0, doc_bookmarks = 0x83b09d8, project_menu =
0x83aaca8, workspaces_submenu = 0x83ac888, build_menu = 0x83acc40,
tools_menu = 0x83ae3a8, options_menu = 0x83aeb80, menu_buffers =
0x83afa08, help_menu = 0x83b11b0, whats_this = 0x83c5380, history_prev =
0x83c9978, history_next = 0x83ca570, file_open_popup = 0x83bcaa8,
classbrowser_popup = 0x83b3138, cv_decl_or_impl = true, file_open_list =
{<QStrListBase> = {<QGList> = {<QCollection> = {del_item = true, _vptr.
= 0x824e55c <QStrList virtual table>}, firstNode = 0x84c23c8, lastNode =
0x84fe6a8, curNode = 0x84fe6a8, curIndex = 14, numNodes = 15, iterators
= 0x0}, }, dc = true}, kdlg_file_menu = 0x8415fb8, kdlg_edit_menu =
0x8416e60, kdlg_view_menu = 0x8417a40, kdlg_project_menu = 0x8418a10,
kdlg_build_menu = 0x841a138, kdlg_tools_menu = 0x841b680,
kdlg_options_menu = 0x841ba20, kdlg_help_menu = 0x841c080, tools_exe =
{<QStrListBase> = {<QGList> = {<QCollection> = {del_item = false, _vptr.
= 0x824e55c <QStrList virtual table>}, firstNode = 0x839a3d8, lastNode =
0x84201b0, curNode = 0x84201b0, curIndex = 3, numNodes = 4, iterators =
0x0}, }, dc = true}, tools_entry = {<QStrListBase> = {<QGList> =
{<QCollection> = {del_item = false, _vptr. = 0x824e55c <QStrList virtual
table>}, firstNode = 0x8395fb8, lastNode = 0x84c7698, curNode =
0x84c7698, curIndex = 3, numNodes = 4, iterators = 0x0}, }, dc = true},
tools_argument = {<QStrListBase> = {<QGList> = {<QCollection> =
{del_item = false, _vptr. = 0x824e55c <QStrList virtual table>},
firstNode = 0x0, lastNode = 0x0, curNode = 0x0, curIndex = -1, numNodes
= 0, iterators = 0x0}, }, dc = true}, kdev_menubar = 0x83a59e8,
kdlg_menubar = 0x8415510, kdev_statusbar = 0x83cd540, kdlg_statusbar =
0x8429278, view = 0x83801a0, top_panner = 0x83818b0, kdlg_top_panner =
0x83f1858, kdlgedit = 0x83f1c30, beep = false, icon_loader = {<QObject>
= {isSignal = 0, isWidget = 0, hiPriority = 0, pendTimer = 0, pendEvent
= 0, blockSig = 0, static metaObj = <optimized out>, objname = 0x0,
parentObj = 0x0, childObjects = 0x0, connections = 0x0, senderObjects =
0x0, eventFilters = 0x0, sigSender = 0x0, _vptr. = 0x405949e0
<KIconLoader virtual table>}, static metaObj = <optimized out>, config =
0x8363e50, name_list = {<QStrListBase> = {<QGList> = {<QCollection> =
{del_item = true, _vptr. = 0x824e55c <QStrList virtual table>},
firstNode = 0x0, lastNode = 0x0, curNode = 0x0, curIndex = -1, numNodes
= 0, iterators = 0x0}, }, dc = true}, pixmap_dirs = {<QStrListBase> =
{<QGList> = {<QCollection> = {del_item = true, _vptr. = 0x824e55c
<QStrList virtual table>}, firstNode = 0x8365a10, lastNode = 0x8375560,
curNode = 0x8365a10, curIndex = 0, numNodes = 5, iterators = 0x0}, }, dc
= true}, pixmap_list = {<QGList> = {<QCollection> = {del_item = true,
_vptr. = 0x40045898 <QListT<QPixmap> virtual table>}, firstNode = 0x0,
lastNode = 0x0, curNode = 0x0, curIndex = -1, numNodes = 0, iterators =
0x0}, }}, process = {<KProcess> = {<QObject> = {isSignal = 0, isWidget =
0, hiPriority = 0, pendTimer = 0, pendEvent = 0, blockSig = 0, static
metaObj = <optimized out>, objname = 0x0, parentObj = 0x0, childObjects
= 0x0, connections = 0x83de138, senderObjects = 0x85165b8, eventFilters
= 0x0, sigSender = 0x853b370, _vptr. = 0x405948dc <KShellProcess virtual
table>}, static metaObj = <optimized out>, arguments = {<QStrListBase> =
{<QGList> = {<QCollection> = {del_item = false, _vptr. = 0x824e55c
<QStrList virtual table>}, firstNode = 0x8537a80, lastNode = 0x8538818,
curNode = 0x8538818, curIndex = 3, numNodes = 4, iterators = 0x0}, }, dc
= true}, run_mode = Block, runs = true, pid = 15329, status = 0, out =
{8, 9}, in = {137913712, 137914112}, err = {10, 11}, innot = 0x0, outnot
= 0x853b370, errnot = 0x8551128, communication = AllOutput, input_data =
0x0, input_sent = 0, input_total = 0}, static metaObj = <optimized out>,
shell = 0x84bbdd0 "/bin/bash"}, appl_process = {<KProcess> = {<QObject>
= {isSignal = 0, isWidget = 0, hiPriority = 0, pendTimer = 0, pendEvent
= 0, blockSig = 0, static metaObj = <optimized out>, objname = 0x0,
parentObj = 0x0, childObjects = 0x0, connections = 0x83de828,
senderObjects = 0x0, eventFilters = 0x0, sigSender = 0x0, _vptr. =
0x405948dc <KShellProcess virtual table>}, static metaObj = <optimized
out>, arguments = {<QStrListBase> = {<QGList> = {<QCollection> =
{del_item = false, _vptr. = 0x824e55c <QStrList virtual table>},
firstNode = 0x0, lastNode = 0x0, curNode = 0x0, curIndex = -1, numNodes
= 0, iterators = 0x0}, }, dc = true}, run_mode = NotifyOnExit, runs =
false, pid = 0, status = 0, out = {137927312, 137927712}, in =
{137928112, 137928512}, err = {137928912, 137929312}, innot = 0x0,
outnot = 0x0, errnot = 0x0, communication = NoCommunication, input_data
= 0x0, input_sent = 0, input_total = 0}, static metaObj = <optimized
out>, shell = 0x0}, shell_process = {<KProcess> = {<QObject> = {isSignal
= 0, isWidget = 0, hiPriority = 0, pendTimer = 0, pendEvent = 0,
blockSig = 0, static metaObj = <optimized out>, objname = 0x0, parentObj
= 0x0, childObjects = 0x0, connections = 0x83de6b8, senderObjects =
0x85643f8, eventFilters = 0x0, sigSender = 0x858ac48, _vptr. =
0x405948dc <KShellProcess virtual table>}, static metaObj = <optimized
out>, arguments = {<QStrListBase> = {<QGList> = {<QCollection> =
{del_item = false, _vptr. = 0x824e55c <QStrList virtual table>},
firstNode = 0x855b1b0, lastNode = 0x8463248, curNode = 0x8463248,
curIndex = 8, numNodes = 9, iterators = 0x0}, }, dc = true}, run_mode =
NotifyOnExit, runs = false, pid = 14464, status = 0, out = {8, 9}, in =
{137942512, 137942912}, err = {10, 11}, innot = 0x0, outnot = 0x858ac48,
errnot = 0x846c518, communication = NoCommunication, input_data = 0x0,
input_sent = 0, input_total = 0}, static metaObj = <optimized out>,
shell = 0x83753e0 "/bin/sh"}, search_process = {<KProcess> = {<QObject>
= {isSignal = 0, isWidget = 0, hiPriority = 0, pendTimer = 0, pendEvent
= 0, blockSig = 0, static metaObj = <optimized out>, objname = 0x0,
parentObj = 0x0, childObjects = 0x0, connections = 0x83de378,
senderObjects = 0x0, eventFilters = 0x0, sigSender = 0x0, _vptr. =
0x405948dc <KShellProcess virtual table>}, static metaObj = <optimized
out>, arguments = {<QStrListBase> = {<QGList> = {<QCollection> =
{del_item = false, _vptr. = 0x824e55c <QStrList virtual table>},
firstNode = 0x0, lastNode = 0x0, curNode = 0x0, curIndex = -1, numNodes
= 0, iterators = 0x0}, }, dc = true}, run_mode = NotifyOnExit, runs =
false, pid = 0, status = 0, out = {137956112, 137956512}, in =
{137956912, 137957312}, err = {0, 0}, innot = 0x0, outnot = 0x0, errnot
= 0x0, communication = NoCommunication, input_data = 0x0, input_sent =
0, input_total = 0}, static metaObj = <optimized out>, shell = 0x0}, prj
= 0x8564aa8, accel = 0x839f508, config = 0x8363e50, act_outbuffer_len =
0, recent_projects = {<QStrListBase> = {<QGList> = {<QCollection> =
{del_item = true, _vptr. = 0x824e55c <QStrList virtual table>},
firstNode = 0x8456e38, lastNode = 0x83be728, curNode = 0x83c1098,
curIndex = 1, numNodes = 5, iterators = 0x0}, }, dc = true},
history_list = {<QStrListBase> = {<QGList> = {<QCollection> = {del_item
= false, _vptr. = 0x824e55c <QStrList virtual table>}, firstNode =
0x84a0738, lastNode = 0x84a0738, curNode = 0x84a0738, curIndex = 0,
numNodes = 1, iterators = 0x0}, }, dc = true}, history_title_list =
{<QStrListBase> = {<QGList> = {<QCollection> = {del_item = false, _vptr.
= 0x824e55c <QStrList virtual table>}, firstNode = 0x845dbe8, lastNode =
0x845dbe8, curNode = 0x845dbe8, curIndex = 0, numNodes = 1, iterators =
0x0}, }, dc = true}, doc_bookmarks_list = {<QStrListBase> = {<QGList> =
{<QCollection> = {del_item = true, _vptr. = 0x824e55c <QStrList virtual
table>}, firstNode = 0x0, lastNode = 0x0, curNode = 0x0, curIndex = -1,
numNodes = 0, iterators = 0x0}, }, dc = true}, doc_bookmarks_title_list
= {<QStrListBase> = {<QGList> = {<QCollection> = {del_item = true,
_vptr. = 0x824e55c <QStrList virtual table>}, firstNode = 0x0, lastNode
= 0x0, curNode = 0x0, curIndex = -1, numNodes = 0, iterators = 0x0}, },
dc = true}, edit_infos = {<QGList> = {<QCollection> = {del_item = false,
_vptr. = 0x824e5ac <QListT<TEditInfo> virtual table>}, firstNode =
0x8573f48, lastNode = 0x851e4f0, curNode = 0x851e4f0, curIndex = 2,
numNodes = 3, iterators = 0x0}, }, s_tab_view = 0x838f198, t_tab_view =
0x8381948, o_tab_view = 0x8380340, kdlg_tabctl = 0x83de9d0,
kdlg_edit_widget = 0x83f6a60, kdlg_prop_widget = 0x83f1978,
kdlg_widgets_view = 0x83def90, kdlg_dialogs_view = 0x83ee7b0,
kdlg_items_view = 0x83f03c0, edit_widget = 0x8398670, header_widget =
0x838f7b8, cpp_widget = 0x8398670, browser_widget = 0x839a2d8,
swallow_widget = 0x839df58, class_tree = 0x8381bb0, log_file_tree =
0x838a978, real_file_tree = 0x838bf00, doc_tree = 0x838d4c8,
messages_widget = 0x8380cd0, stdin_stdout_widget = 0x8381250,
stderr_widget = 0x8381580, tree_view_pos = 244, output_view_pos = 62,
properties_view_pos = 66, workspace = 1, error_parser = 0x8398ec8,
version = {<QArrayT<char>> = {<QGArray> = {shd = 0x836aad0, _vptr. =
0x824e52c <force_to_data>}, }, }, kdev_caption = {<QArrayT<char>> =
{<QGArray> = {shd = 0x836aae0, _vptr. = 0x824e52c <force_to_data>}, },
}, kdlg_caption = {<QArrayT<char>> = {<QGArray> = {shd = 0x8367c88,
_vptr. = 0x824e52c <force_to_data>}, }, }, project = true,
prev_was_search_result = false, saveTimer = 0x83bcf90, bAutosave = true,
saveTimeout = 300000, bAutoswitch = true, bDefaultCV = true, bKDevelop =
true, statProg = 0x83cd8e8, search_output = {<QArrayT<char>> =
{<QGArray> = {shd = 0x8367c98, _vptr. = 0x824e52c <force_to_data>}, },
}, doc_search_display_text = {<QArrayT<char>> = {<QGArray> = {shd =
0x8366488, _vptr. = 0x824e52c <force_to_data>}, }, }, doc_search_text =
{<QArrayT<char>> = {<QGArray> = {shd = 0x8366498, _vptr. = 0x824e52c
<force_to_data>}, }, }, next_job = {<QArrayT<char>> = {<QGArray> = {shd
= 0x83664a8, _vptr. = 0x824e52c <force_to_data>}, }, }, make_cmd =
{<QArrayT<char>> = {<QGArray> = {shd = 0x8378d08, _vptr. = 0x824e52c
<force_to_data>}, }, }, enscriptconf = 0x0, a2psconf = 0x0, add_dlg =
0x8541b98, grep_dlg = 0x83ce928, lasttab = 1, lastfile =
{<QArrayT<char>> = {<QGArray> = {shd = 0x84c2898, _vptr. = 0x824e52c
<force_to_data>}, }, }}
(gdb) 
                                               _...__..-'
Massimo Morin                                .'
mmorin at schedsys.com                        .'
+1 (617) 484 2999                        .'
                                       .'
            .------._                 ;
      .-"""`-.<')    `-._           .'
     (.--. _   `._       `'---.__.-'
      `   `;'-.-'         '-    ._     Scheduling Systems Inc.
        .--'``  '._      - '   .       Three University Office Park
         `""'-.    `---'    ,          95 Sawyer Road
 ''--..__      `\                      Waltham, 02453 Massachusetts USA
         ``''---'`\      .'            +1 (781) 893-0390 x 126
                   `'. '               http://www.schedsys.com
                     `'.



More information about the KDevelop mailing list