diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DbeDebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DbeDebugService.java index e3807b6a404984bf6f50464bb93d85b725b46b6c..3cddf93b5493be941558fae63aedb369d4a6baa4 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DbeDebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DbeDebugService.java @@ -60,6 +60,11 @@ public class DbeDebugService extends DebugService { */ public static final Map> map = new ConcurrentHashMap<>(); + /** + * save param type + */ + public static final Map> paramType = new ConcurrentHashMap<>(); + private TurnOnVo turnOnVo = null; private DebuggerReportService reportService = DebuggerReportService.getInstance(); diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/StackVoHandle.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/StackVoHandle.java index d4a302bdf7249227f4ca3770f9e7c391b794ad83..ab28547fe4fcc0c3278153a0ec416c5d2123ade3 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/StackVoHandle.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/StackVoHandle.java @@ -19,10 +19,13 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import org.apache.commons.lang.StringUtils; import org.opengauss.mppdbide.debuger.annotation.ParseVo; import org.opengauss.mppdbide.debuger.vo.StackVo; import org.opengauss.mppdbide.debuger.vo.dbe.BackTraceVo; +import org.opengauss.mppdbide.utils.VariableRunLine; /** * Description: StackVoHandle @@ -43,11 +46,16 @@ public class StackVoHandle implements IQueryResConvertService { List list = new ArrayList(); List infos = ParseVo.parseList(rs, BackTraceVo.class); infos.forEach(item -> { + /** + * If the step in function is later adapted, + * the parameter type obtained here may not be obtained from the inner function parameter type + */ + List paramTypes = DbeDebugService.paramType.get(VariableRunLine.currentOid); StackVo vo = new StackVo(); vo.func = item.funcoid; vo.linenumber = item.lineno; - vo.level = 0; - vo.targetname = item.query; + vo.level = item.frameno; + vo.targetname = String.format(Locale.ENGLISH, "%s(%s)", item.funcname, StringUtils.join(paramTypes,',')); list.add((T) vo); }); return list; diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/StartDebugHandler.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/StartDebugHandler.java index dd1b092054199548f4d74e2331acc5b740ce67bf..b094696f927765ad72280a10b5a7226ad98c0ca1 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/StartDebugHandler.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/StartDebugHandler.java @@ -105,8 +105,11 @@ public class StartDebugHandler { QueryService queryService = serviceHelper.getQueryService(); FunctionVo functionVo = queryService.queryFunction(functionName); long oid = functionVo.oid; - List paramNames = params.stream().map(item -> item.getName()).distinct().collect(Collectors.toList()); + List paramNames = params.stream().map(item -> item.getName()).distinct() + .collect(Collectors.toList()); DbeDebugService.map.put(oid, paramNames); + List paramTypes = params.stream().map(item -> item.getDataType()).collect(Collectors.toList()); + DbeDebugService.paramType.put(oid, paramTypes); setUsagehint(plSourceEditor); } catch (SQLException e) { MPPDBIDELoggerUtility.info("dbeStartDebugParam get failed: " + e.getMessage()); diff --git a/information/datastudio/Data Studio User Manual.pdf b/information/datastudio/Data Studio User Manual.pdf index 09de0d4fcb63becf2949048d686dcf315d1bc9e3..f033abb2d6e38dce8ccc7599c270c3e4ee6cb85f 100644 Binary files a/information/datastudio/Data Studio User Manual.pdf and b/information/datastudio/Data Studio User Manual.pdf differ diff --git "a/information/datastudio/Data Studio \347\224\250\346\210\267\346\211\213\345\206\214.pdf" "b/information/datastudio/Data Studio \347\224\250\346\210\267\346\211\213\345\206\214.pdf" index a9e76571c788f2301e4696d2fe604725710befb3..8b85d40eacdf537b3b137f52fb384b668fd75b00 100644 Binary files "a/information/datastudio/Data Studio \347\224\250\346\210\267\346\211\213\345\206\214.pdf" and "b/information/datastudio/Data Studio \347\224\250\346\210\267\346\211\213\345\206\214.pdf" differ