我刚刚在学习Azure数据湖分析和U-SQL。我有一个简单的脚本运行并生成预期的输出。然而,当我在代码后面的助手方法中设置一个断点时,它不会被打中,因为没有符号被加载。我已经看过所有可用的微软教程,并且没有提示我必须做任何事情来启用调试,它应该在我运行时工作。断点后面的U-SQL代码未命中
- 我在本地运行。
- 我正在使用F5在调试模式下运行。
- 脚本成功完成。
- 输出确认helper方法执行
U型SQL
@searchlog =
EXTRACT UserId int,
Start DateTime,
Region string,
Query string,
Duration int,
Urls string,
ClickedUrls string
FROM "/SearchLog.tsv"
USING Extractors.Tsv();
@searchlog = SELECT
UserId,
DataLake.Helper.Test() AS Test,
Start,
Region,
Query,
Duration,
Urls,
ClickedUrls
FROM @searchlog;
OUTPUT @searchlog
TO "/SearchLog_output.tsv"
USING Outputters.Tsv();
代码隐藏
namespace DataLake
{
public class Helper
{
public static string Test()
{
Console.WriteLine("Stop");
return "Test";
}
}
}
输出窗口
'DebugHost.exe' (CLR v4.0.30319: DefaultDomain): Loaded.
'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561
934e089\mscorlib.dll'. Symbols loaded.
'DebugHost.exe' (CLR v4.0.30319: DefaultDomain): Loaded
'C:\Users\ksmith\Documents\Visual Studio
2017\Projects\USQLApplication1\DataLake\bin\LocalDebug\DebugHost.exe'.
Symbols loaded.
'DebugHost.exe' (CLR v4.0.30319: DebugHost.exe): Loaded
'C:\Users\ksmith\Documents\Visual Studio
2017\Projects\USQLApplication1\DataLake\bin\LocalDebug\Microsoft.Cosmos
.ScopeStudio.BusinessObjects.Debugger.dll'. Cannot find or open the PDB
file.
'DebugHost.exe' (CLR v4.0.30319: DebugHost.exe): Loaded
'C:\Users\ksmith\Documents\Visual Studio
2017\Projects\USQLApplication1\DataLake\bin\LocalDebug\Microsoft.Cosmos
.ScopeStudio.BusinessObjects.Common.dll'. Cannot find or open the PDB file.
'DebugHost.exe' (CLR v4.0.30319: DebugHost.exe): Loaded
'C:\Users\ksmith\Documents\Visual Studio
2017\Projects\USQLApplication1\DataLake\bin\LocalDebug\Microsoft.Analytics
.LocalRun.dll'. Cannot find or open the PDB file.
'DebugHost.exe' (CLR v4.0.30319: DebugHost.exe): Loaded
'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c56
1934e089\System.dll'. Symbols loaded.
'DebugHost.exe' (CLR v4.0.30319: DebugHost.exe): Loaded
'C:\Users\ksmith\Documents\Visual Studio
2017\Projects\USQLApplication1\DataLake\bin\LocalDebug\Microsoft.Cosmos.
ClientTools.Shared.dll'. Cannot find or open the PDB file.
'DebugHost.exe' (CLR v4.0.30319: DebugHost.exe): Loaded
'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__
b77a5c561934e089\System.Core.dll'. Symbols loaded.
'DebugHost.exe' (CLR v4.0.30319: DebugHost.exe): Loaded
'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b
77a5c561934e089\System.Xml.dll'. Symbols loaded.
'DebugHost.exe' (CLR v4.0.30319: DebugHost.exe): Loaded
'C:\Users\ksmith\Documents\Visual Studio
2017\Projects\USQLApplication1\DataLake\bin\LocalDebug\ScopeRuntime.exe'.
Cannot find or open the PDB file.
The program '[28036] DebugHost.exe' has exited with code 0 (0x0).
任何人都可以摆脱关于为什么断点不被击中的一些信息?
Adding Debugger.Launch();导致“选择即时调试器”窗口出现。如果我选择其中一个选项,那么我会得到一个视觉工作室的实例,其中断点背后的代码被击中。该VS实例称为LocalVertexHost
感谢
你应该能够做你所描述的。你怎么知道没有符号加载?如果您分享您正在使用的VS版本和ADL插件,这将有所帮助。如果您与工具团队私密分享这些脚本和VS项目,我们可以查看脚本和VS项目:bigdatatools(at)Microsoft dot com。 – OmidA
您可以请建立干净,然后F5,然后检查是否有$(ProjectDirectory)\ bin \ debug \ XXXXX \ _ScriptFileName_YYYY \ __ codebehind_zzzz.dll和.pdb?这是程序集动态生成的dll和pdb。确认这些都存在后,您可以在调试器中暂停以查看dll是否已加载到“模块”中,并尝试从那里加载该pdb文件以查看该符号是否可以加载。 –
我曾尝试使用VS 2015 - ADL 2.2.2100.0和VS 2017 - ADL 2.2.9000.1。 dll和pdb文件后面的代码在LocalDebug文件夹中创建,但它不出现在模块窗口中 – ksmith