{"id":3228,"date":"2019-09-05T11:08:56","date_gmt":"2019-09-05T11:08:56","guid":{"rendered":"https:\/\/tridenstechnology.com\/?p=3228"},"modified":"2022-03-01T15:10:30","modified_gmt":"2022-03-01T15:10:30","slug":"%e9%80%9a%e8%bf%87-gdb-%e8%b0%83%e8%af%95-oracle-brm-%e7%ad%96%e7%95%a5%e6%93%8d%e4%bd%9c%e7%a0%81%e8%87%aa%e5%ae%9a%e4%b9%89%e4%bb%a3%e7%a0%81","status":"publish","type":"post","link":"https:\/\/tridenstechnology.com\/zh\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/","title":{"rendered":"Oracle BRM\u653f\u7b56\u64cd\u4f5c\u7801\u901a\u8fc7GDB\u8fdb\u884c\u81ea\u5b9a\u4e49\u4ee3\u7801\u8c03\u8bd5"},"content":{"rendered":"<p>\u5982\u679c\u6211\u4eec\u60f3\u751f\u4ea7\u51fa\u9ad8\u8d28\u91cf\u7684 <a href=\"https:\/\/tridenstechnology.com\/oracle-brm\/\">\u7532\u9aa8\u6587BRM<\/a> \u5728\u5f00\u53d1\u8f6f\u4ef6\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u5fc5\u987b\u6ee1\u8db3\u4e00\u4e9b\u8981\u6c42\u3002\u5728\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u91c7\u7528\u826f\u597d\u7684\u6d4b\u8bd5\u548c\u8c03\u8bd5\u6280\u672f\u5c24\u4e3a\u91cd\u8981\u3002<br>\u6d4b\u8bd5\u662f\u5728\u8f6f\u4ef6\u4ea7\u54c1\u4e2d\u53d1\u73b0 bug \u6216\u9519\u8bef\u7684\u8fc7\u7a0b\uff0c\u53ef\u7531\u6d4b\u8bd5\u4eba\u5458\u624b\u52a8\u5b8c\u6210\uff0c\u4e5f\u53ef\u5b9e\u73b0\u81ea\u52a8\u5316\u3002<br><a href=\"https:\/\/en.wikipedia.org\/wiki\/Debugging\">\u8c03\u8bd5<\/a> \u662f\u6307\u53d1\u73b0\u5e76\u89e3\u51b3\u8ba1\u7b97\u673a\u7a0b\u5e8f\u4e2d\u59a8\u788d\u8ba1\u7b97\u673a\u8f6f\u4ef6\u6216\u7cfb\u7edf\u6b63\u786e\u8fd0\u884c\u7684\u7f3a\u9677\u6216\u95ee\u9898\u7684\u8fc7\u7a0b\u3002\u5b83\u57fa\u672c\u4e0a\u662f\u4e00\u4e2a\u4fee\u590d\u5728\u6d4b\u8bd5\u9636\u6bb5\u53d1\u73b0\u7684\u9519\u8bef\u7684\u8fc7\u7a0b\u3002\u8c03\u8bd5\u5de5\u4f5c\u7531\u7a0b\u5e8f\u5458\u6216\u5f00\u53d1\u4eba\u5458\u8d1f\u8d23\uff0c\u65e0\u6cd5\u5b9e\u73b0\u81ea\u52a8\u5316\u3002<\/p>\n\n\n\n<div class=\"wp-block-yoast-seo-table-of-contents yoast-table-of-contents\"><h2>\u76ee\u5f55<\/h2><ul><li><a href=\"#h-debugging-oracle-brm-policy-opcodes-custom-code\" data-level=\"2\">\u8c03\u8bd5 Oracle BRM \u7b56\u7565\u64cd\u4f5c\u7801\u81ea\u5b9a\u4e49\u4ee3\u7801<\/a><\/li><li><a href=\"#h-debugging-in-practice\" data-level=\"2\">\u8c03\u8bd5\u5b9e\u8df5<\/a><\/li><\/ul><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-debugging-oracle-brm-policy-opcodes-custom-code\">\u8c03\u8bd5 Oracle BRM \u7b56\u7565\u64cd\u4f5c\u7801\u81ea\u5b9a\u4e49\u4ee3\u7801<\/h2>\n\n\n\n<p>\u5728 <a href=\"https:\/\/tridenstechnology.com\/oracle-brm\/\">\u7532\u9aa8\u6587BRM<\/a> \u7ecf\u5e38\u9700\u8981\u8c03\u8bd5\u4e00\u4e9b\u4ee3\u7801\uff0c\u4ee5\u53d1\u73b0\u6f5c\u5728\u7684\u9519\u8bef\u6216\u5206\u6790\u4ee3\u7801\u884c\u4e3a\u3002\u4e00\u4e9b\u57fa\u672c\u7684\u5206\u6790\u53ef\u4ee5\u901a\u8fc7\u8bb0\u5f55\u4e00\u4e9b\u8c03\u8bd5\u4fe1\u606f\u548c\u5206\u6790\u65e5\u5fd7\u6765\u5b8c\u6210\uff0c\u4f46\u66f4\u9ad8\u7ea7\u3001\u66f4\u5f3a\u5927\u7684\u65b9\u6cd5\u662f\u4f7f\u7528\u5355\u72ec\u7684\u5de5\u5177--\u8c03\u8bd5\u5668\u3002\u672c\u6587\u5c06\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u5f00\u6e90\u8c03\u8bd5\u5668 GDB \u8c03\u8bd5 Oracle BRM cm \u8fdb\u7a0b\uff0c\u8be5\u8fdb\u7a0b\u8fd8\u6267\u884c\u4e00\u4e9b\u81ea\u5b9a\u4e49\u4ee3\u7801\uff08\u89c1\u4e0b\u56fe\uff09\u3002<\/p>\n\n\n\n<div class=\"wp-block-image dt-pswp-item\"><figure class=\"aligncenter\"><a class=\"dt-pswp-item\" href=\"https:\/\/tridenstechnology.com\/wp-content\/uploads\/2019\/09\/Debugging-Oracle-BRM-CM-GDB.png\"><img fetchpriority=\"high\" decoding=\"async\" width=\"593\" height=\"266\" src=\"https:\/\/tridenstechnology.com\/wp-content\/uploads\/2019\/09\/Debugging-Oracle-BRM-CM-GDB.png\" alt=\"\u4f7f\u7528 GDB \u8c03\u8bd5 Oracle BRM CM\" class=\"wp-image-3230\" srcset=\"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/09\/Debugging-Oracle-BRM-CM-GDB.png 593w, https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/09\/Debugging-Oracle-BRM-CM-GDB-300x135.png 300w\" sizes=\"(max-width: 593px) 100vw, 593px\" \/><\/a><figcaption>\u4f7f\u7528 GDB \u8c03\u8bd5 Oracle BRM CM \u7684\u793a\u610f\u56fe\u6982\u89c8<\/figcaption><\/figure><\/div>\n\n\n\n<p><a href=\"https:\/\/www.gnu.org\/software\/gdb\/\">GDB<\/a> \u662f\u4e00\u4e2a\u5f00\u6e90\u8c03\u8bd5\u5668\uff0c\u5b83\u63d0\u4f9b\u4e86\u8bb8\u591a\u5148\u8fdb\u800c\u5f3a\u5927\u7684\u5de5\u5177\u6765\u5206\u6790\u548c\u8c03\u8bd5\u6211\u4eec\u7684\u4ee3\u7801\u3002GDB \u7684\u4e00\u4e9b\u57fa\u672c\u529f\u80fd\u5305\u62ec\u65ad\u70b9\uff08\u6709\u6761\u4ef6\/\u65e0\u6761\u4ef6\uff09\u3001\u76d1\u89c6\u3001\u56de\u6eaf\u548c\u589e\u91cf\u4ee3\u7801\u6267\u884c\u3002\u5f53\u7136\uff0c\u4f60\u8fd8\u53ef\u4ee5\u67e5\u770b\u548c\u4fee\u6539\u53d8\u91cf\u503c\uff0c\u8c03\u7528\u5404\u79cd\u51fd\u6570\u3002\u73b0\u5728\uff0c\u8ba9\u6211\u4eec\u770b\u770b\u5982\u4f55\u5728 cm \u8fdb\u7a0b\u4e2d\u5b9e\u9645\u4f7f\u7528 GDB\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-debugging-in-practice\">\u8c03\u8bd5\u5b9e\u8df5<\/h2>\n\n\n\n<p>\u9996\u5148\uff0c\u6211\u4eec\u5fc5\u987b\u83b7\u53d6 CM \u8fdb\u7a0b\u7684 PID\uff1a<\/p>\n\n\n\n<p><em>ps x<\/em><\/p>\n\n\n\n<p>\u67e5\u627e CM \u8fdb\u7a0b PID\uff0c\u5e76\u7528\u5b83\u901a\u8fc7 GDB \u8fde\u63a5\u5230\u8be5\u8fdb\u7a0b\uff1a<\/p>\n\n\n\n<p>gdb cm<\/p>\n\n\n\n<p>\u73b0\u5728 GDB shell \u6253\u5f00\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u5176\u4e2d\u6267\u884c GDB \u652f\u6301\u7684\u5404\u79cd\u547d\u4ee4\u3002\u4e0e CM \u5efa\u7acb\u7684\u6bcf\u4e2a\u65b0\u8fde\u63a5\u90fd\u4f1a\u4ece\u7236 CM \u751f\u6210\u65b0\u7684\u5b50 CM \u8fdb\u7a0b\u3002\u6211\u4eec\u5e0c\u671b GDB \u4e5f\u80fd\u8ddf\u8e2a\u8fd9\u4e9b\u5b50\u8fdb\u7a0b\u3002\u5728 GDB shell \u4e2d\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n\n\n\n<p>(gdb) \u8bbe\u7f6e follow-fork-mode child<\/p>\n\n\n\n<p>\u6839\u636e\u4f60\u7684\u9700\u8981\uff0c\u4f60\u53ef\u80fd\u8fd8\u60f3\u63a2\u7d22\u547d\u4ee4 set detach-on-fork \u548c attach\u3002\u73b0\u5728\uff0c\u8ba9\u6211\u4eec\u5728\u67d0\u4e9b\u7b56\u7565\u64cd\u4f5c\u7801\u7684\u5b9e\u73b0\u4e0a\u8bbe\u7f6e\u4e00\u4e9b\u65ad\u70b9\uff0c\u5c31\u50cf\u4e0b\u9762\u7684\u4f8b\u5b50\u4e00\u6837\uff1a<\/p>\n\n\n\n<p>(gdb) break fm_act_pol_post_reauthorize.c:192<\/p>\n\n\n\n<p>\u73b0\u5728\uff0c\u5f53\u6211\u4eec\u89e6\u53d1\u7b56\u7565\u64cd\u4f5c\u7801\u6267\u884c\u65f6\uff0c\u5b83\u5c06\u88ab\u65ad\u70b9\u4e2d\u65ad\uff08\u751a\u81f3\u5728\u65ad\u70b9\u4e2d\u65ad\u4e4b\u524d\uff0c\u5b83\u5c31\u4f1a\u901a\u77e5\u6211\u4eec\u65b0\u7684\u5b50\u4ee3\u5df2\u7ecf\u751f\u6210\uff09\u3002\u7136\u540e\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u4f7f\u7528 next\uff08\u4e0b\u4e00\u6b65\uff09\u6216 step \u547d\u4ee4\u9010\u6b65\u8ddf\u8e2a\u4ee3\u7801\u6d41\u3002\u5982\u679c\u6211\u4eec\u5bf9\u67d0\u4e2a\u53d8\u91cf\u7684\u503c\u611f\u5174\u8da3\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5c06\u5176\u6253\u5370\u51fa\u6765\uff1a<\/p>\n\n\n\n<p>\u6253\u5370 &lt;\u53d8\u91cf<\/p>\n\n\n\n<div class=\"wp-block-image dt-pswp-item\"><figure class=\"aligncenter\"><a class=\"dt-pswp-item\" href=\"https:\/\/tridenstechnology.com\/wp-content\/uploads\/2019\/09\/Oracle-BRM-CM-process-debugging-example.png\"><img decoding=\"async\" width=\"840\" height=\"413\" src=\"https:\/\/tridenstechnology.com\/wp-content\/uploads\/2019\/09\/Oracle-BRM-CM-process-debugging-example.png\" alt=\"Oracle BRM CM \u6d41\u7a0b\u8c03\u8bd5\u793a\u4f8b\" class=\"wp-image-3239\" srcset=\"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/09\/Oracle-BRM-CM-process-debugging-example.png 840w, https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/09\/Oracle-BRM-CM-process-debugging-example-300x148.png 300w, https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/09\/Oracle-BRM-CM-process-debugging-example-768x378.png 768w\" sizes=\"(max-width: 840px) 100vw, 840px\" \/><\/a><figcaption>\u4f7f\u7528 GDB \u8c03\u8bd5 Oracle BRM CM \u8fdb\u7a0b\u7684\u793a\u4f8b<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u6211\u4eec\u8fd8\u62e5\u6709\u8bb8\u591a\u66f4\u5148\u8fdb\u3001\u66f4\u5f3a\u5927\u7684\u529f\u80fd\uff0c\u8fd9\u4e9b\u529f\u80fd\u5728 GDB \u6587\u6863\u548c\u96c6\u6210\u5e2e\u52a9\u4e2d\u90fd\u6709\u8be6\u7ec6\u4ecb\u7ecd\u3002\u6211\u4eec\u9080\u8bf7\u4f60\u7814\u7a76\u5b83\u4eec\uff0c\u770b\u770b\u5b83\u4eec\u80fd\u5982\u4f55\u5e2e\u52a9\u4f60\u3002<\/p>","protected":false},"excerpt":{"rendered":"<p>If we want to produce a high-quality of our Oracle BRM software, we must meet some requirements regarding our development process. It is especially important to incorporate good testing and debugging techniques in our development process.Testing is a process of finding bugs or errors in a software product that is done manually by a tester&hellip;<\/p>","protected":false},"author":1,"featured_media":3165,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38],"tags":[],"class_list":["post-3228","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle-billing","category-38","description-off"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle BRM Policy Opcode Custom Code Debugging via GDB<\/title>\n<meta name=\"description\" content=\"An article about debugging Oracle Billing and Revenue Management (Oracle BRM) policy opcodes custom code using external debugger GDB.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tridenstechnology.com\/zh\/\u901a\u8fc7-gdb-\u8c03\u8bd5-oracle-brm-\u7b56\u7565\u64cd\u4f5c\u7801\u81ea\u5b9a\u4e49\u4ee3\u7801\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle BRM Policy Opcode Custom Code Debugging via GDB\" \/>\n<meta property=\"og:description\" content=\"An article about debugging Oracle Billing and Revenue Management (Oracle BRM) policy opcodes custom code using external debugger GDB.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tridenstechnology.com\/zh\/\u901a\u8fc7-gdb-\u8c03\u8bd5-oracle-brm-\u7b56\u7565\u64cd\u4f5c\u7801\u81ea\u5b9a\u4e49\u4ee3\u7801\/\" \/>\n<meta property=\"og:site_name\" content=\"Tridens\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/tridenstechnology\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-05T11:08:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-01T15:10:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/Oracle-BRM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1734\" \/>\n\t<meta property=\"og:image:height\" content=\"1156\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ale\u0161\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@TridensTech\" \/>\n<meta name=\"twitter:site\" content=\"@TridensTech\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ale\u0161\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle BRM\u653f\u7b56\u64cd\u4f5c\u7801\u901a\u8fc7GDB\u8fdb\u884c\u81ea\u5b9a\u4e49\u4ee3\u7801\u8c03\u8bd5","description":"\u4e00\u7bc7\u5173\u4e8e\u4f7f\u7528\u5916\u90e8\u8c03\u8bd5\u5668GDB\u8c03\u8bd5Oracle\u8d26\u5355\u548c\u6536\u5165\u7ba1\u7406\uff08Oracle BRM\uff09\u653f\u7b56\u64cd\u4f5c\u7801\u81ea\u5b9a\u4e49\u4ee3\u7801\u7684\u6587\u7ae0\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tridenstechnology.com\/zh\/\u901a\u8fc7-gdb-\u8c03\u8bd5-oracle-brm-\u7b56\u7565\u64cd\u4f5c\u7801\u81ea\u5b9a\u4e49\u4ee3\u7801\/","og_locale":"zh_CN","og_type":"article","og_title":"Oracle BRM Policy Opcode Custom Code Debugging via GDB","og_description":"An article about debugging Oracle Billing and Revenue Management (Oracle BRM) policy opcodes custom code using external debugger GDB.","og_url":"https:\/\/tridenstechnology.com\/zh\/\u901a\u8fc7-gdb-\u8c03\u8bd5-oracle-brm-\u7b56\u7565\u64cd\u4f5c\u7801\u81ea\u5b9a\u4e49\u4ee3\u7801\/","og_site_name":"Tridens","article_publisher":"https:\/\/www.facebook.com\/tridenstechnology","article_published_time":"2019-09-05T11:08:56+00:00","article_modified_time":"2022-03-01T15:10:30+00:00","og_image":[{"width":1734,"height":1156,"url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/Oracle-BRM.png","type":"image\/png"}],"author":"Ale\u0161","twitter_card":"summary_large_image","twitter_creator":"@TridensTech","twitter_site":"@TridensTech","twitter_misc":{"\u4f5c\u8005":"Ale\u0161","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/#article","isPartOf":{"@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/"},"author":{"name":"Ale\u0161","@id":"https:\/\/tridenstechnology.com\/#\/schema\/person\/ccd247e07a5e0f856ec13af63d611358"},"headline":"Oracle BRM Policy Opcode Custom Code Debugging via GDB","datePublished":"2019-09-05T11:08:56+00:00","dateModified":"2022-03-01T15:10:30+00:00","mainEntityOfPage":{"@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/"},"wordCount":515,"commentCount":0,"publisher":{"@id":"https:\/\/tridenstechnology.com\/#organization"},"image":{"@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/#primaryimage"},"thumbnailUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/Oracle-BRM.png","articleSection":["Oracle Billing"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/#respond"]}],"accessibilityFeature":["tableOfContents"]},{"@type":"WebPage","@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/","url":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/","name":"Oracle BRM\u653f\u7b56\u64cd\u4f5c\u7801\u901a\u8fc7GDB\u8fdb\u884c\u81ea\u5b9a\u4e49\u4ee3\u7801\u8c03\u8bd5","isPartOf":{"@id":"https:\/\/tridenstechnology.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/#primaryimage"},"image":{"@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/#primaryimage"},"thumbnailUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/Oracle-BRM.png","datePublished":"2019-09-05T11:08:56+00:00","dateModified":"2022-03-01T15:10:30+00:00","description":"\u4e00\u7bc7\u5173\u4e8e\u4f7f\u7528\u5916\u90e8\u8c03\u8bd5\u5668GDB\u8c03\u8bd5Oracle\u8d26\u5355\u548c\u6536\u5165\u7ba1\u7406\uff08Oracle BRM\uff09\u653f\u7b56\u64cd\u4f5c\u7801\u81ea\u5b9a\u4e49\u4ee3\u7801\u7684\u6587\u7ae0\u3002","breadcrumb":{"@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/#primaryimage","url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/Oracle-BRM.png","contentUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/Oracle-BRM.png","width":1734,"height":1156,"caption":"Oracle BRM - Billing and Revenue Management"},{"@type":"BreadcrumbList","@id":"https:\/\/tridenstechnology.com\/oracle-brm-policy-opcode-custom-code-debugging-via-gdb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tridenstechnology.com\/"},{"@type":"ListItem","position":2,"name":"Oracle BRM Policy Opcode Custom Code Debugging via GDB"}]},{"@type":"WebSite","@id":"https:\/\/tridenstechnology.com\/#website","url":"https:\/\/tridenstechnology.com\/","name":"Tridens","description":"\u8d27\u5e01\u5316\u3001\u8ba1\u8d39\u548c\u7535\u52a8\u6c7d\u8f66\u5145\u7535","publisher":{"@id":"https:\/\/tridenstechnology.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tridenstechnology.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/tridenstechnology.com\/#organization","name":"Tridens","url":"https:\/\/tridenstechnology.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/tridenstechnology.com\/#\/schema\/logo\/image\/","url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/02\/tridens_logo_invert.png","contentUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/02\/tridens_logo_invert.png","width":600,"height":191,"caption":"Tridens"},"image":{"@id":"https:\/\/tridenstechnology.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/tridenstechnology","https:\/\/x.com\/TridensTech","https:\/\/www.instagram.com\/tridenstechnology\/","https:\/\/www.linkedin.com\/company\/tridens","https:\/\/www.youtube.com\/user\/TridensIT"]},{"@type":"Person","@id":"https:\/\/tridenstechnology.com\/#\/schema\/person\/ccd247e07a5e0f856ec13af63d611358","name":"\u963f\u5217\u65af","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/secure.gravatar.com\/avatar\/0df040b8c52446051022ab32cd2ac1dc64d3c7eed18d5bd5ab9f2992b8935fc8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0df040b8c52446051022ab32cd2ac1dc64d3c7eed18d5bd5ab9f2992b8935fc8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0df040b8c52446051022ab32cd2ac1dc64d3c7eed18d5bd5ab9f2992b8935fc8?s=96&d=mm&r=g","caption":"Ale\u0161"},"description":"Ales Pristovnik\u662fTridens\u79d1\u6280\u516c\u53f8\u7684\u9996\u5e2d\u6267\u884c\u5b98\uff0c\u8fd9\u662f\u4e00\u5bb6\u4e13\u95e8\u4e3a\u6c7d\u8f66\u884c\u4e1a\u5f00\u53d1\u8f6f\u4ef6\u89e3\u51b3\u65b9\u6848\u7684\u65af\u6d1b\u6587\u5c3c\u4e9a\u516c\u53f8\u3002\u4ed6\u5728IT\u884c\u4e1a\u6709\u5f88\u957f\u7684\u5386\u53f2\uff0c\u8fc7\u53bb\u66fe\u5728\u51e0\u4e2a\u5927\u516c\u53f8\u5de5\u4f5c\u8fc7\u3002\u4ed6\u5bf9\u6280\u672f\u548c\u521b\u65b0\u5145\u6ee1\u70ed\u60c5\uff0c\u4ed6\u76ee\u524d\u7684\u91cd\u70b9\u662f\u5f00\u53d1\u80fd\u591f\u63d0\u9ad8\u6c7d\u8f66\u884c\u4e1a\u5b89\u5168\u548c\u6548\u7387\u7684\u89e3\u51b3\u65b9\u6848\u3002\u4ed6\u5728\u9886\u5bfc\u548c\u7ba1\u7406\u65b9\u9762\u6709\u5f88\u5f3a\u7684\u80cc\u666f\uff0c\u5e76\u81f4\u529b\u4e8e\u5728\u4e0d\u65ad\u53d1\u5c55\u7684\u6280\u672f\u9886\u57df\u63a8\u52a8\u5176\u516c\u53f8\u7684\u53d1\u5c55\u3002","url":"https:\/\/tridenstechnology.com\/zh\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/posts\/3228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/comments?post=3228"}],"version-history":[{"count":0,"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/posts\/3228\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/media\/3165"}],"wp:attachment":[{"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/media?parent=3228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/categories?post=3228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tridenstechnology.com\/zh\/wp-json\/wp\/v2\/tags?post=3228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}