Skip to content

Commit

Permalink
Merge pull request #18 from cesspit/master
Browse files Browse the repository at this point in the history
switching between frames by clicking a frame arrow in the stack window
  • Loading branch information
frlan committed Mar 14, 2012
2 parents 1310a1e + f72e580 commit 093fdc6
Show file tree
Hide file tree
Showing 17 changed files with 662 additions and 109 deletions.
4 changes: 4 additions & 0 deletions debugger/ChangeLog
@@ -1,3 +1,7 @@
10-03-2012 Alexander Petukhov <devel@apetukhov.ru>

* switching between frames by clicking a frame arrow in the stack window

18-02-2012 Alexander Petukhov <devel@apetukhov.ru>

* threads info added to the stack window
Expand Down
4 changes: 3 additions & 1 deletion debugger/TODO
Expand Up @@ -2,12 +2,13 @@ BUGS:
- terminal stops to produce any output after some debug seesions
- tooltip appears even if a pointer in no longer inside editor window
- check possible memory leaks on a)gtk_tree_row_reference_get_path b)missing unrefs on tree/list stores
- cell_renderer_toogle SIGSEGV in cell_renderer_toggle_activate when activating a cell using a keyboard (event->button == NULL)
- debug geany with debugger project. switch frames then step over -> continue instead, then close geany being debugged -> dbm_gdb.c:502 (no step reason, probably the record from the previos step command???)

FEATURES:
- custom tooltip with sticking facilities
- don't hide a tooltip until run hasn't happent, move it if document is being scrolled
- use lexer to lookup for a symbol under cursor when presenting a tooltip
- jump to a frame (change frame that affects locals, watch etc., caused by clicking a frame in the stack trace tab/margin stack marker)
- geany menu integration
- toolbar buttons
- margin context menu
Expand All @@ -22,3 +23,4 @@ FEATURES:
- interrupt thread using stack window
- custom tooltip on breaks and stack trace windows with code snippet around break or frame
- font from the geany settings for a message window
- a button in the upper right path of a right notebook for a hiding/showing button panel
2 changes: 2 additions & 0 deletions debugger/src/Makefile.am
Expand Up @@ -62,6 +62,8 @@ debugger_la_SOURCES = \
wtree.h \
cell_renderers/cellrendererbreakicon.c \
cell_renderers/cellrendererbreakicon.h \
cell_renderers/cellrendererframeicon.c \
cell_renderers/cellrendererframeicon.h \
cell_renderers/cellrenderertoggle.c \
cell_renderers/cellrenderertoggle.h

Expand Down
3 changes: 2 additions & 1 deletion debugger/src/breakpoints.h
Expand Up @@ -27,7 +27,8 @@ typedef enum _break_state {
BS_DISABLED
} break_state;

typedef void (*move_to_line_cb)(char* file, int line);
typedef void (*move_to_line_cb)(const char* file, int line);
typedef void (*select_frame_cb)(int frame_number);

gboolean breaks_init(move_to_line_cb callback);
void breaks_destroy();
Expand Down
26 changes: 14 additions & 12 deletions debugger/src/callbacks.c
Expand Up @@ -67,24 +67,26 @@ void set_markers_for_file(const gchar* file)
/* set frames markers if exists */
if (DBS_STOPPED == debug_get_state())
{
int active_frame_index = debug_get_active_frame();

GList *iter = debug_get_stack();
if (iter)
int frame_index = 0;
for (; iter; iter = iter->next, frame_index++)
{
frame *f = (frame*)iter->data;
if (f->have_source && !strcmp(f->file, file))
{
markers_add_current_instruction(f->file, f->line);
}

iter = iter->next;
while (iter)
if (iter)
{
f = (frame*)iter->data;
frame *f = (frame*)iter->data;
if (f->have_source && !strcmp(f->file, file))
{
markers_add_frame(f->file, f->line);
if (active_frame_index == frame_index)
{
markers_add_current_instruction(f->file, f->line);
}
else
{
markers_add_frame(f->file, f->line);
}
}
iter = iter->next;
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion debugger/src/cell_renderers/cellrendererbreakicon.c
Expand Up @@ -205,7 +205,7 @@ static void cell_renderer_break_icon_render(GtkCellRenderer *cell, GdkDrawable *
{
CellRendererBreakIcon *cellbreakpoint = (CellRendererBreakIcon*) cell;

GdkPixbuf *pixbuf;
GdkPixbuf *pixbuf = NULL;

GdkRectangle pix_rect;
GdkRectangle draw_rect;
Expand Down
2 changes: 1 addition & 1 deletion debugger/src/cell_renderers/cellrendererbreakicon.h
Expand Up @@ -54,7 +54,7 @@ struct _CellRendererBreakIconClass
{
GtkCellRendererClass parent_class;

void (*clicked)(GtkCellRendererToggle *cell_renderer_toggle, const gchar *path);
void (*clicked)(CellRendererBreakIcon *cell_renderer_toggle, const gchar *path);
};

GType cell_renderer_break_icon_get_type(void);
Expand Down

0 comments on commit 093fdc6

Please sign in to comment.