项目使用的是 Hibernate,我想看看当我执行 SQL 时 Hibernate 具体执行了它自身的哪些代码,我想跟踪源码看看,是否有工具可以看到它执行过程的调用栈呢?感谢。
|
monkeyWieApr 21, 2020
1
打个断点不就看到了吗
|
|
royanApr 21, 2020
3
祝早日脱离 hibernate 的苦海
|
|
340244120wApr 21, 2020
4
@jeffh #2
在你业务查询代码里打个断点,到断点的时候,仔细看 idea 的 debug 窗口里所有 tab 。。。 |
|
5
@340244120w 这个时候调用栈还没到 hibernate 里面
|
|
340244120wApr 21, 2020
7
用 xrebel 吧
|
|
zhaorunzeApr 21, 2020
9
先抛异常,然后在异常所在文件的函数上面打断点。当然如果没有异常当我没说,或者可以认为的制造异常,然后抛异常的位置,大概就是关键代码位置。
|
|
ic2yApr 21, 2020
11
例如,com.mysql.jdbc.StatementImpl 的 executeQuery 方法,这种底层 jdbc 的 查询和 execute 方法,打上断点,然后做一些业务操作,静静等待断点到来
|
|
aitaiiApr 21, 2020 via Android
12
断电看调用栈
|
|
14
@340244120w 貌似不是我想要的
|
|
ilumerApr 22, 2020
15
故意抛出异常,然后跟着堆栈走
|
|
scemsjydApr 22, 2020 via Android
16
arthas 可以看调用栈,不过没有直接本地 debug 来的快
|
|
THESDZApr 22, 2020
17
是不是看似没进去,实际使用了反射,然后你跳过了?
|
|
itechifyApr 22, 2020 via Android
18
呆呆的办法~
```java public void test(){ A a = aDao.save(new A()); // 断点下一行 sout("断点这一行然后看调用栈找到你需要的断点入口再断点"); } ``` |
|
340244120wApr 22, 2020
19
@jeffh #14 xrebel 能看到 sql 语句到 controller 的所有栈信息,不就是你要的么。。你用了就知道了
|
|
zekApr 22, 2020
20
试试 java Agent
|