问题标签 [debug-build]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
649 浏览

debugging - gstreamer 调试版本

我正在编写一个多媒体应用程序。出于调试目的,我需要为 Windows 构建 gstreamer 调试版本。Ossbuild 只提供发布 dll。有谁知道我在哪里可以获得 gstreamer 的调试 dll?

0 投票
1 回答
727 浏览

c++ - 为什么 RUMTIME_CLASS 在 VS2008 Debug 版本中通过编译没有“DECLARE_DYNAMIC”?

在底部回答。谢谢!

编译器在 Release 版本中正确捕捉到错误 C2039 和 C2065;

我只是好奇为什么相同的代码可以在调试版本中通过编译?

这是一个已知的微软错误吗?

我知道 DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC 会解决这个问题。但是,没有它们,为什么微软在我的调试版本中通过编译?这就是问题。


知道原因。迈克尔的回答完全正确。_AFXDLL 仅在我的调试配置中定义。因此,在调试版本上,它在扩展宏 RUNTIME_CLASS 时使用 CObject::GetThisClass。

因此,如果未声明 DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC,则发布和调试版本都将捕获以下代码的编译器错误:

但只有在 _AFXDLL 未预定义时,以下代码才会失败。

谢谢

0 投票
3 回答
677 浏览

c# - 我可以在 C# 中装饰一个方法,使其仅在调试版本中编译吗?

我知道您可以#if DEBUG在 C# 中使用和类似的东西,但是是否可以创建一个完全被忽略的方法或类,包括包​​装在#if DEBUG块内的所有用法?

就像是:

接着:

其中,如果DEBUG定义将打印“hello world”,否则将打印“hello”。但更重要的是,MSIL 根本不应该在发布版本中包含方法调用。

我相信我所追求的行为类似于 Debug.WriteLine,它的调用被完全删除,并且对发布版本中的性能或堆栈深度没有影响。

并且,如果可能在 C# 中,任何使用此方法的 .NET 语言的行为是否相同(即,编译时与运行时优化)。

还标记,因为基本上我在那里需要这个方法。

0 投票
1 回答
152 浏览

f# - 如何结合需要单位结果的 ConditionalAttribute 来利用 TextWriterFormat 的 printfn 样式的功能

我将自己设置为创建一个行为类似于sprintfor的跟踪函数printfn,但使用ConditionalAttribute.

到目前为止的结果:我认为这是不可能的。

问题集中在这样一个事实,即当您使用Conditional("DEBUG")属性时,函数必须返回单位结果。“正常”参数按应有的方式工作,并且该方法已正确修饰(编辑:修饰,是的,但可咖喱成员没有被删除,请参阅讨论,必须改用元组形式):

(请注意,没有ignore,由于 Conditional 属性,这将无法编译)

但是,一旦我尝试了 的任何变体Printf.TextWriterFormat<'T>,它就会失败,而且我看不到解决方法:

这在没有属性的情况下有效,但使用属性,它将引发:

这个表达式应该有类型
      unit
,但这里有类型
      string -> unit

该错误特别强调Trace.trace "hello: %s"。所以看起来编译器没有识别出整个表达式导致 a unit,并引发错误,因为它在内部创建了一个返回的包装函数string -> unit,这是ConditionalAttribute.

当我尝试通过显式指定:unit函数返回类型或printfn msg |> ignore作为主体来修复它时,我失去了使用类型安全的文本编写器格式字符串的能力,事实上,它不会识别调用中的第二个参数- 网站不再。

因此,虽然整个函数签名都遵循 CLR 的规则,但 F# 创建的内联函数似乎没有,至少在这种特定情况下没有。

我尝试过变体,包括kprintf,sprintf看看是否有帮助,但都无济于事。

有任何想法吗?或者这是您尝试铺设地毯的情况之一,一旦您将它在一个角落正确平滑,它会在另一个角落冒泡,反之亦然,即它永远不适合?


PS:如果您想知道我为什么想要它:只是尝试创建一个行为类似于现有 Trace 的便利函数,但在后台运行一些其他功能。我目前拥有的作品,但它只需要一个字符串,而不是静态类型检查的参数,所以它迫使用户编写如下内容:

0 投票
1 回答
168 浏览

c# - 属性上的 ConditionalAttribute 有什么作用?

我知道做什么ConditionalAttribute

文档说它也可以应用于一个类,如果它来自Attribute

但是该自定义属性的行为如何?(它是从发布版本中剥离出来的吗?)

0 投票
1 回答
918 浏览

security - Golang 二进制文件如何以及为何显示错误的文件和行信息

我在玩 go 同步组,我只是尝试了如果我添加的组多于我标记完成会发生什么。我得到了我在下面发布的运行时错误。 所以这里的问题是,如果 go 被编译成真正的机器代码,不像 java 或 c#,为什么我的文件甚至行信息可以显示在运行时错误中。如果文件信息保存在二进制文件中,我认为它可以很容易地反编译。我做错了什么我是否需要为产品构建添加一些 env 变量,或者它就像 c# 没有真正的方法来隐藏你的代码

0 投票
3 回答
649 浏览

android - APK 构建执行期间 Google 地图崩溃

我在我的应用程序中使用谷歌地图。我尝试在包含地图的片段内使用 MapView 和 SupportMapFragment。出现的问题导致谷歌地图在地图初始化期间“构建 APK”过程(在我测试过的所有设备中)后崩溃,但从 Android Studio 运行(使用运行)时,它按预期工作。这是堆栈跟踪(我在所有执行中得到的都是 AssertionError):

10-19 12:17:27.244 2256-2638/com.google.android.gms E/BaseAppContext: 试图停止全局 GMSCore RequestQueue。这可能是无意的,所以忽略。10-19 12:17:28.640 1921-1921/com.google.android.gms.persistent E/BluetoothAdapter:蓝牙绑定器为空 10-19 12:17:29.537 1921-1921/com.google.android.gms.persistent E/BluetoothAdapter:蓝牙绑定器为空 10-19 12:17:29.542 2256-2677/com.google.android.gms E/MDM:[142] rpv.a:无法连接到 Google API 客户端:ConnectionResult{statusCode =API_UNAVAILABLE,分辨率=null,消息=null} 10-19 12:17:30.112 1921-1921/com.google.android.gms.persistent E/ChimeraRcvrProxy:找不到 Chimera 接收器 impl 类 com.google.android。 gms.auth.setup.devicesignals.LockScreenChimeraReceiver,丢弃广播 10-19 12:17:31.602 2393-2501/com.app E/Surface:getSlotFromBufferLocked:未知缓冲区:0xaa112310 10-19 12:17:36.351 2776-2782/?E/art:向调试器发送回复失败:Broken pipe 10-19 12:17:37.267 1269-1617/? E/SurfaceFlinger: ro.sf.lcd_density 必须定义为构建属性 10-19 12:17:46.449 1269-1269/? E/EGL_emulation: tid 1269: eglCreateSyncKHR(1370): error 0x3004 (EGL_BAD_ATTRIBUTE) 10-19 12:17:47.050 2393-2501/com.app E/Surface: getSlotFromBufferLocked: 未知缓冲区: 0xaa112700 [10-19 12:17: 47.094 2393: 2842 D/] HostConnection::get() 新主机连接建立 0xb4050b90, tid 2842 10-19 12:17:47.222 1899-2797/com.android.inputmethod.latin E/Surface: getSlotFromBufferLocked:  

如此处所述,我在构建 gradle 中声明 API 密钥: Google Maps Signed APK Android

我如何初始化地图的代码示例:

这是片段布局:

如果代码在运行模式下工作但不在“构建 APK”模式下,可能会出现什么问题?

0 投票
2 回答
67 浏览

android - 可调试的安卓应用

当我尝试在 google play 上发布时出现以下错误。

您上传了一个可调试的 APK。出于安全原因,您需要先禁用调试,然后才能在 Google Play 中发布它

我已将 Manifest.xml 设置为,debbugable=false但它不起作用。

0 投票
0 回答
69 浏览

visual-studio-2015 - VS2015调试构建后如何触发发布构建

由于我需要在每次调试构建后启动发布构建,因此我希望对其进行脚本化。VS2015 中是否有任何方法可以在调试后强制发布版本?

0 投票
1 回答
176 浏览

android - 如何在发布版本中使标签不可见

我想在发布版本中隐藏一个列表视图项,但在调试版本中使其可见。我在互联网上搜索了它,但我找不到任何关于它的信息。任何人都可以帮助我吗?