gpt4 book ai didi

java - 在 Cassandra 中调试 CQL 输入时无法查看用户输入

转载 作者:行者123 更新时间:2023-11-30 03:58:46 25 4
gpt4 key购买 nike

尝试调试我正在使用的程序时遇到一些问题,想知道是否有人可以帮助我。

当前环境是我正在运行 Cassandra (v2),使用它附带的 cqlsh (v3)。我正在对其某些功能进行更改,然后使用 cqlsh 测试命令以查看我的更改是否按预期工作,或者如果不是我单步执行程序时的输入情况。我启动一个调试 session (在 IntelJ 的 Eclipse 中,并不重要),启动服务器代码以接受连接/输入。然后,我加载 cqlsh,并指定我要使用的键空间。这似乎工作正常。然后,我执行一行 cql 以通过命令行测试我的更改。我期望看到的是 IDE 中的调试器捕获的命令行条目,在这里我可以看到代码更改如何处理输入。我看到的是根本没有发生任何事情,就好像没有提交命令一样。

所以我的问题如下:

1) 当执行上述命令时,我应该在调试 IDE 中看到任何内容吗?2)如果没有,您将如何调试具有此配置的基于服务器的应用程序,特别是在处理用户输入领域?3)如果是这样,我应该检查哪些设置以查看是否设置正确,或者应该遵循哪些流程来查看和调试所述提交?

我认为必须有一种比到处都有 50,000 个 System.out.println() 更好的方法(假设它们甚至可以工作),或者至少,我希望有。

感谢所有阅读本文的人。如有任何问题(我确信可能存在,因为我可能没有使用正确的描述符),请询问。

最佳答案

我通过以下方法取得了成功。

  1. 确保使用 -g 进行编译(例如:javac -g)以启用所有调试信息的生成。
  2. 启动应用程序时,使用适当的调试标志(例如 java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1414,数字是您连接的端口to)启动调试服务器。请注意,您可以从远程主机进行调试(调试器将使用主机名:端口语法进行连接)。您无需为 Cassandra 输入所有内容;您只需取消注释 cassandra-env.sh 中的相关行(在 Windows 中,查看 bin/Cassandra.bat 或如果运行 Datastax 发行版,则在注册表项 HKLM\SOFTWARE\[可选 Wow6432Node\]Apache Software Foundation\[Procrun 节点]\[Cassandra 节点]\Parameters\Java:Options)。
  3. 从 IDE 连接到您的服务器(我确信我使用的是 Eclipse,IntelJ 类似)。
  4. 在 IDE 中打开源代码并放置一些将在您的用例中发挥作用的断点。
  5. 运行您的场景。你的断点应该命中。为了明确确认设置有效,请在场景中保证执行的内容上放置断点,而不是在您认为应该的内容上放置断点。

就您而言,因为您可以成功指定 key 空间,所以我相信一切正常,然后当您尝试执行其他步骤时会出现静默失败,这可能是由您的修改引起的。为了确认这一点,我建议回滚所有更改并首先在干净的构建上测试调试器设置。

最后,这可能是多余的,CQLSH 是一个用 Python 编写的程序,在不同的进程中与 Cassandra 分开运行。因此,您无法从 Java 调试器看到实际的“命令行条目”。最接近原始输入的方法是在 cql3 包中的某个位置放置断点,以查看 CQL 语句的传入(希望如此)。当然,如果您想要的话,您可以使用 Python 调试器来调试 CQLSH。

关于java - 在 Cassandra 中调试 CQL 输入时无法查看用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22427625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com