使用Java的jdb调试我的代码.我停留在我的程序期望命令行输入的位置,但是jdb将其作为jdb命令拦截.
如何告诉jdb将文本传递给正在运行的程序?
版:
C:\Documents and Settings\*snip*>java -showversion
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
编译:
javac -g LZWDecompress.java
Run Code Online (Sandbox Code Playgroud)
jdb.ini:
stop in LZWDecompress.decompress
run
monitor list
Run Code Online (Sandbox Code Playgroud)
这是发生的事情:
Initializing jdb ...
*** Reading commands from C:\Documents and Settings\*snip*\jdb.ini
Deferring breakpoint LZWDecompress.decompress.
It will be set after the class is loaded.
> run LZWDecompress
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
> > >
VM Started: Set deferred breakpoint LZWDecompress.decompress
File to …Run Code Online (Sandbox Code Playgroud) 因为我理解"for(;;)"没有初始条件,没有测试条件和没有增量条件,因此永远循环,我很好奇为什么测试条件成功每个循环.
空表达式是否为";" 在C中评估为真?或者这是由编译器处理的特殊情况?
我的数据看起来像这样:
CUSTOMER_ID OPERDAYSJUL OPERDAYSAUG OPERDAYSSEP ... OPERDAYSJUN
1 30 15 2
2 5 1 0
3 6 0 12
4 12 5 23
Run Code Online (Sandbox Code Playgroud)
对于每个 customer_id,我想要一个以逗号分隔的列表,指示客户运营的月份:
CUSTOMER_ID OPERATING_MONTHS
1 Jul, Aug, Sep
2 Jul, Aug
3 Jul, Sep
4 Jul, Aug, Sep
Run Code Online (Sandbox Code Playgroud)
等等。我如何使用 SQL Server 2005 SQL(不是 T-SQL)轻松生成此逗号分隔列表?
我在 Stack Overflow 和其他地方看到的大多数解决方案似乎都是基于连接多个行值而不是列值来创建逗号分隔的列表:
我错过了一些明显的东西吗?在此先感谢您的帮助或指向适当的现有解决方案的指示。
想知道显式汇编指令实际构成X86架构上的主引导记录.感谢您的任何见解.
其他架构受到欢迎,但主要是针对X86.
如果一行中n列中的一列包含非空值,则返回CHAR(1)指示符Y/N的最简洁方法是什么?
在这种情况下,性能很重要,但不是主要考虑因素.
直截了当的方式似乎是:
SELECT CASE WHEN (C.TerminatedDate IS NULL
AND C.SelfClosedDate IS NULL
AND ...)
THEN 'Y'
ELSE 'N' END AS 'OpenInd'
FROM Customers C
Run Code Online (Sandbox Code Playgroud)
好奇如果有更好的方法; 了解COALESCE():
SELECT CASE WHEN COALESCE (C.TerminatedDate, C.SelfClosedDate, ...) IS NULL
THEN 'Y'
ELSE 'N' END AS 'OpenInd'
FROM Customers C
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
数据库服务器是SQL Server 2008.
我们的集中式IT部门为大约200名员工的一般用户群提出了两种主要的即席查询工具:
Microsoft SQL Server Management Studio 2008(SSMS)
Microsoft Access 2003
环境
后端数据库是只读的Microsoft SQL Server 2005数据库.
架构是400多个表; 允许我们的普通员工访问原始数据将是一场灾难.
我们将在原始数据上构建一个"抽象层",供我们的一般员工运行即席查询.
抽象层很可能包含许多视图.
许多用户具有Microsoft Access的基本知识; 没有人使用过SSMS.
以上哪种工具(或替代方案)最适合大约200人的非技术用户群?各自的优点和缺点是什么?
此外,IT部门建议教人T-SQL,以便他们可以使用SSMS.这合理吗?
如何在jdb中跳过一定次数的断点?
jdb的帮助提供了这个提示:
!! -- repeat last command
<n> <command> -- repeat command n times
# <command> -- discard (no-op)
Run Code Online (Sandbox Code Playgroud)
当我尝试多次跳过断点时,如下所示:
80 cont
Run Code Online (Sandbox Code Playgroud)
或者像这样:
80 run
Run Code Online (Sandbox Code Playgroud)
jdb barfs:
main[1] 80 cont
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
Breakpoint hit: main[1] > Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.
> Nothing suspended.Exception in thread "event-handler" java.lang.NullPointerException
at com.sun.tools.example.debug.tty.TTY.printCurrentLocation(TTY.java:212)
at com.sun.tools.example.debug.tty.TTY.vmInterrupted(TTY.java:189)
at com.sun.tools.example.debug.tty.EventHandler.run(EventHandler.java:86)
at …Run Code Online (Sandbox Code Playgroud) 试图复制/粘贴159KB TSQL查询到Microsoft Access 2010直通查询编辑器(在Microsoft SQL Server 2008的后端).
这会产生弹出错误, "The text is too long to be edited".
Microsoft Access 2010中查询的最大长度是多少?