mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-20 11:48:31 -06:00
Fix debugging of self-referencing functions. Fixes #2524
This commit is contained in:
parent
bac9c77c4e
commit
136ed0d3e2
@ -979,6 +979,7 @@ define([
|
|||||||
|
|
||||||
var DebuggerStackModel = Backbone.Model.extend({
|
var DebuggerStackModel = Backbone.Model.extend({
|
||||||
defaults: {
|
defaults: {
|
||||||
|
frame_id: 0,
|
||||||
name: undefined,
|
name: undefined,
|
||||||
value: undefined,
|
value: undefined,
|
||||||
line_no: undefined
|
line_no: undefined
|
||||||
@ -991,17 +992,22 @@ define([
|
|||||||
});
|
});
|
||||||
|
|
||||||
var stackGridCols = [
|
var stackGridCols = [
|
||||||
{name: 'name', label: gettext('Name'), type:'text', editable: false, cell:'string'},
|
{name: 'name', label: gettext('Name'), type:'text',
|
||||||
{name: 'value', label: gettext('Value'), type:'text', editable: false, cell:'string'},
|
editable: false, cell:'string'},
|
||||||
{name: 'line_no', label: gettext('Line No.'), type:'text', editable: false, cell:'string'}
|
{name: 'value', label: gettext('Value'), type:'text',
|
||||||
|
editable: false, cell:'string'},
|
||||||
|
{name: 'line_no', label: gettext('Line No.'), type:'text',
|
||||||
|
editable: false, cell:'string'}
|
||||||
];
|
];
|
||||||
|
|
||||||
var my_obj = [];
|
var my_obj = [];
|
||||||
if (result.length != 0)
|
for (var i = 0; i < result.length; i++) {
|
||||||
{
|
my_obj.push({
|
||||||
for (var i = 0; i < result.length; i++) {
|
"frame_id": i,
|
||||||
my_obj.push({ "name": result[i].targetname, "value": result[i].args, "line_no": result[i].linenumber });
|
"name": result[i].targetname,
|
||||||
}
|
"value": result[i].args,
|
||||||
|
"line_no": result[i].linenumber
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var stackColl = this.stackColl = new StackCollection(my_obj);
|
var stackColl = this.stackColl = new StackCollection(my_obj);
|
||||||
@ -1018,14 +1024,11 @@ define([
|
|||||||
},
|
},
|
||||||
rowClick: function(e) {
|
rowClick: function(e) {
|
||||||
//Find which row is selected and depending on that send the frame id
|
//Find which row is selected and depending on that send the frame id
|
||||||
for (var i = 0; i < this.model.collection.length; i++) {
|
self.frame_id = this.model.get('frame_id');
|
||||||
if (this.model.collection.models[i].get('name') == this.model.get('name')) {
|
|
||||||
self.frame_id_ = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.model.trigger('backgrid:row:selected', this);
|
this.model.trigger('backgrid:row:selected', this);
|
||||||
self.stack_grid.$el.find("td").css("background-color", this.disabledColor);
|
self.stack_grid.$el.find("td").css(
|
||||||
|
"background-color", this.disabledColor
|
||||||
|
);
|
||||||
this.$el.find("td").css("background-color", this.highlightColor);
|
this.$el.find("td").css("background-color", this.highlightColor);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
@ -1036,7 +1039,10 @@ define([
|
|||||||
stack_grid.render();
|
stack_grid.render();
|
||||||
|
|
||||||
// Render the stack grid into stack panel
|
// Render the stack grid into stack panel
|
||||||
pgTools.DirectDebug.stack_pane_panel.$container.find('.stack_pane').append(stack_grid.el);
|
pgTools.DirectDebug.stack_pane_panel
|
||||||
|
.$container
|
||||||
|
.find('.stack_pane')
|
||||||
|
.append(stack_grid.el);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1235,7 +1241,7 @@ define([
|
|||||||
// Make ajax call to listen the database message
|
// Make ajax call to listen the database message
|
||||||
var baseUrl = url_for('debugger.select_frame', {
|
var baseUrl = url_for('debugger.select_frame', {
|
||||||
'trans_id': pgTools.DirectDebug.trans_id,
|
'trans_id': pgTools.DirectDebug.trans_id,
|
||||||
'frame_id': self.frame_id_
|
'frame_id': self.frame_id
|
||||||
});
|
});
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: baseUrl,
|
url: baseUrl,
|
||||||
|
@ -6,6 +6,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func AND s.pkg = p.pkg) AS args
|
WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_continue({{session_id}}::INTEGER) p
|
FROM pldbg_continue({{session_id}}::INTEGER) p
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -7,6 +7,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func AND s.pkg = p.pkg) AS args
|
WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_select_frame({{session_id}}::INTEGER, {{frame_id}}::INTEGER) p
|
FROM pldbg_select_frame({{session_id}}::INTEGER, {{frame_id}}::INTEGER) p
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -6,6 +6,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func AND s.pkg = p.pkg) AS args
|
WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_step_into({{session_id}}::INTEGER) p
|
FROM pldbg_step_into({{session_id}}::INTEGER) p
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -6,6 +6,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func AND s.pkg = p.pkg) AS args
|
WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_step_over({{session_id}}::INTEGER) p
|
FROM pldbg_step_over({{session_id}}::INTEGER) p
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -6,6 +6,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func AND s.pkg = p.pkg) AS args
|
WHERE s.func = p.func AND s.pkg = p.pkg ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_wait_for_breakpoint({{session_id}}::INTEGER) p;
|
FROM pldbg_wait_for_breakpoint({{session_id}}::INTEGER) p;
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -6,6 +6,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func) AS args
|
WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_continue({{session_id}}::INTEGER) p
|
FROM pldbg_continue({{session_id}}::INTEGER) p
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -6,6 +6,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func) AS args
|
WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_select_frame({{session_id}}::INTEGER, {{frame_id}}::INTEGER) p
|
FROM pldbg_select_frame({{session_id}}::INTEGER, {{frame_id}}::INTEGER) p
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -6,6 +6,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func) AS args
|
WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_step_into({{session_id}}::INTEGER) p
|
FROM pldbg_step_into({{session_id}}::INTEGER) p
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -6,6 +6,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func) AS args
|
WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_step_over({{session_id}}::INTEGER) p
|
FROM pldbg_step_over({{session_id}}::INTEGER) p
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -7,6 +7,6 @@ SELECT
|
|||||||
(SELECT
|
(SELECT
|
||||||
s.args
|
s.args
|
||||||
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
FROM pldbg_get_stack({{session_id}}::INTEGER) s
|
||||||
WHERE s.func = p.func) AS args
|
WHERE s.func = p.func ORDER BY s.level LIMIT 1) AS args
|
||||||
FROM pldbg_wait_for_breakpoint({{session_id}}::INTEGER) p
|
FROM pldbg_wait_for_breakpoint({{session_id}}::INTEGER) p
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
Loading…
Reference in New Issue
Block a user